Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local v1 = require(script.Parent);
local v2 = require(game.Players.LocalPlayer:WaitForChild("PlayerScripts"):WaitForChild("PlayerModule")):GetControls();
local v3 = game["Run Service"];
local l__UserInputService__4 = game:GetService("UserInputService");
local l__ProximityPromptService__5 = game:GetService("ProximityPromptService");
local l__TextService__6 = game:GetService("TextService");
local v7 = require(game:GetService("ReplicatedStorage"):WaitForChild("ClientModules"):WaitForChild("GetPlatform"));
local v8 = script:FindFirstAncestor("MainUI");
if v7() == "mobile" then
	v8.MainFrame:WaitForChild("MobileButtons").Visible = true;
end;
local l__PromptFrame__1 = v8:WaitForChild("MainFrame"):WaitForChild("PromptFrame");
local u2 = require(script:WaitForChild("MouseIcons"));
local u3 = require(game:GetService("ReplicatedStorage"):WaitForChild("ClientModules"):WaitForChild("ButtonIcons"));
local l__InteractButton__4 = v8.MainFrame:WaitForChild("MobileButtons"):WaitForChild("InteractButton");
local u5 = require(script:WaitForChild("Hint"));
local l__TweenService__6 = game:GetService("TweenService");
local u7 = nil;
local u8 = tick();
local l__Highlight__9 = script:WaitForChild("Highlight");
local u10 = Vector3.new(0, 0, 0);
local u11 = nil;

function update(p1, p2)
	task.spawn(function()
		if game.Players.LocalPlayer.Character:WaitForChild("Humanoid").Health == 0 then
			return
		end
		l__PromptFrame__1.Title.Text = p1.ObjectText;
		l__PromptFrame__1.Desc.Text = p1.ActionText;
		l__PromptFrame__1.Key.Text = p1.KeyboardKeyCode.Name;
		l__PromptFrame__1.Bar.Bar.Size = UDim2.new(0, 0, 1, 0);
		l__PromptFrame__1.Bar.Bar:TweenSize(UDim2.new(0, 0, 1, 0), "Out", "Sine", 0.1, true);
		l__PromptFrame__1.CenterImage.Image = u2.getIcon(p1.ActionText);
		if p1.ActionText == "Collect" then
			task.delay(0.2, function()
				p1:InputHoldBegin();
			end);
		end;
		local v9 = UDim.new(0.925, 0);
		if v7() ~= "pc" then
			l__PromptFrame__1.Key.Visible = false;
			l__PromptFrame__1.UIScale.Scale = 1.5;
			if v7() == "console" then
				l__PromptFrame__1.KeyXbox.Image = u3[p1.GamepadKeyCode.Name];
				l__PromptFrame__1.KeyXbox.Visible = true;
			elseif v7() == "mobile" then
				l__PromptFrame__1.KeyXbox.Visible = false;
			end;
		else
			l__PromptFrame__1.Key.Visible = true;
			l__PromptFrame__1.KeyXbox.Visible = false;
		end;
		l__InteractButton__4.Icon.Image = l__PromptFrame__1.CenterImage.Image;
		if p1.ObjectText == "Hint" then
			local v10 = UDim.new(0.85, 0);
			l__PromptFrame__1.Key.Text = u5[p1.ActionText];
			l__PromptFrame__1.CenterImage.Image = u2.getIcon(p1.ObjectText);
		end;
		local v11 = {
			BackgroundColor3 = Color3.fromRGB(0, 0, 0)
		};
		if p2 == true then
			l__PromptFrame__1.BackgroundColor3 = Color3.new(0.776471, 0.729412, 0.376471);
			l__TweenService__6:Create(l__PromptFrame__1, TweenInfo.new(0.15, Enum.EasingStyle.Quart, Enum.EasingDirection.In), v11):Play();
		else
			l__PromptFrame__1.BackgroundColor3 = Color3.new(0.337255, 0.423529, 0.533333);
			l__TweenService__6:Create(l__PromptFrame__1, TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.In), v11):Play();
		end;
		if 0 < p1.HoldDuration then
			l__PromptFrame__1.Bar.Visible = true;
		else
			l__PromptFrame__1.Bar.Visible = false;
		end;
		script.Holding:Stop();
		local l__CurrentCamera__12 = workspace.CurrentCamera;
		local v13 = l__CurrentCamera__12.CFrame.Position;
		local v21
		local v22, v23 = l__CurrentCamera__12:WorldToScreenPoint(v13 - Vector3.new(0, 0.2, 0));
		local l__Parent__14 = p1.Parent;
		local v15 = false;
		u8 = tick();
		if l__Parent__14 then
			if not l__Parent__14:IsA("BasePart") then
				if l__Parent__14:IsA("Model") then
					v13 = l__Parent__14:GetPivot().Position;
					v15 = true;
				elseif l__Parent__14:IsA("Attachment") then
					v13 = l__Parent__14.WorldPosition;
				end;
			else
				v13 = l__Parent__14:GetPivot().Position;
				v15 = true;
			end;
			l__Highlight__9.Adornee = l__Parent__14;
			l__Highlight__9.Enabled = true;
			l__PromptFrame__1.Visible = true;
			l__PromptFrame__1.Position = UDim2.new(0.5, 0, 2, 0);
			local v16 = u10;
			if v16 then
				if 7 <= (v16 - v13).Magnitude then
					v16 = nil;
				elseif v16 then

				end;
			end;
			l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
				FillTransparency = 0.9,
				OutlineTransparency = 0
			}):Play();
			local v17 = nil;
			local v18 = nil;
			if v7() == "mobile" then
				l__InteractButton__4.Visible = true;
				l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
					BackgroundTransparency = 0.35
				}):Play();
				l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
					Transparency = 0
				}):Play();
				l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
					ImageTransparency = 0
				}):Play();
				v17 = l__InteractButton__4.InputBegan:Connect(function()
					p1:InputHoldBegin();
				end);
				v18 = l__InteractButton__4.InputEnded:Connect(function()
					p1:InputHoldEnd();
				end);
			end;
			local v19 = tick();
			local v20 = 1 - 1;
			if not l__Parent__14:IsA("BasePart") then
				if not l__Parent__14:IsA("Model") then
					if l__Parent__14:IsA("Attachment") then
						while true do
							if p1 then

							else
								pcall(function()
									if v17 then
										if v18 then
											v17:Disconnect();
											v18:Disconnect();
										end;
									end;
								end);
								if u7 == nil then
									l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										FillTransparency = 1,
										OutlineTransparency = 1
									}):Play();
									task.wait(0.2);
									if u7 == nil then
										if u8 == u8 then
											l__Highlight__9.Adornee = nil;
											l__Highlight__9.Enabled = false;
											l__PromptFrame__1.Visible = false;
											l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												BackgroundTransparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												Transparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												ImageTransparency = 1
											}):Play();
										end;
									end;
								elseif l__PromptFrame__1.Visible then
									u11 = v13;
								end;
								break;
							end;
							if u7 == u7 then

							else
								pcall(function()
									if v17 then
										if v18 then
											v17:Disconnect();
											v18:Disconnect();
										end;
									end;
								end);
								if u7 == nil then
									l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										FillTransparency = 1,
										OutlineTransparency = 1
									}):Play();
									task.wait(0.2);
									if u7 == nil then
										if u8 == u8 then
											l__Highlight__9.Adornee = nil;
											l__Highlight__9.Enabled = false;
											l__PromptFrame__1.Visible = false;
											l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												BackgroundTransparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												Transparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												ImageTransparency = 1
											}):Play();
										end;
									end;
								elseif l__PromptFrame__1.Visible then
									u11 = v13;
								end;
								break;
							end;
							if u7 then

							else
								pcall(function()
									if v17 then
										if v18 then
											v17:Disconnect();
											v18:Disconnect();
										end;
									end;
								end);
								if u7 == nil then
									l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										FillTransparency = 1,
										OutlineTransparency = 1
									}):Play();
									task.wait(0.2);
									if u7 == nil then
										if u8 == u8 then
											l__Highlight__9.Adornee = nil;
											l__Highlight__9.Enabled = false;
											l__PromptFrame__1.Visible = false;
											l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												BackgroundTransparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												Transparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												ImageTransparency = 1
											}):Play();
										end;
									end;
								elseif l__PromptFrame__1.Visible then
									u11 = v13;
								end;
								break;
							end;
							if l__PromptFrame__1.Visible then

							else
								pcall(function()
									if v17 then
										if v18 then
											v17:Disconnect();
											v18:Disconnect();
										end;
									end;
								end);
								if u7 == nil then
									l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										FillTransparency = 1,
										OutlineTransparency = 1
									}):Play();
									task.wait(0.2);
									if u7 == nil then
										if u8 == u8 then
											l__Highlight__9.Adornee = nil;
											l__Highlight__9.Enabled = false;
											l__PromptFrame__1.Visible = false;
											l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												BackgroundTransparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												Transparency = 1
											}):Play();
											l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
												ImageTransparency = 1
											}):Play();
										end;
									end;
								elseif l__PromptFrame__1.Visible then
									u11 = v13;
								end;
								break;
							end;
							if v15 then
								v21 = l__Parent__14:GetPivot().Position;
							else
								v21 = l__Parent__14.WorldPosition;
							end;
							if v16 then
								if v16 ~= nil then
									v21 = v16:Lerp(v21, l__TweenService__6:GetValue((tick() - v19) * 4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out));
								end;
							end;
							u10 = v13;
							l__PromptFrame__1.Position = UDim2.new(0, math.clamp(v22.X, 80, v8.AbsoluteSize.X - 80), 0, math.clamp(v22.Y, 80, v8.AbsoluteSize.Y - 80));
							l__Highlight__9.Adornee = l__Parent__14;
							l__Highlight__9.Enabled = true;
							task.wait();
							if 0 <= 1 then
								if v20 < 100000000 then

								else
									break;
								end;
							elseif 100000000 < v20 then

							else
								break;
							end;
							v20 = v20 + 1;
						end;
					end;
				else
					v19 = tick();
					v20 = 1 - 1;
					while true do
						if p1 then

						else
							pcall(function()
								if v17 then
									if v18 then
										v17:Disconnect();
										v18:Disconnect();
									end;
								end;
							end);
							if u7 == nil then
								l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
									FillTransparency = 1,
									OutlineTransparency = 1
								}):Play();
								task.wait(0.2);
								if u7 == nil then
									if u8 == u8 then
										l__Highlight__9.Adornee = nil;
										l__Highlight__9.Enabled = false;
										l__PromptFrame__1.Visible = false;
										l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											BackgroundTransparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											Transparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											ImageTransparency = 1
										}):Play();
									end;
								end;
							elseif l__PromptFrame__1.Visible then
								u11 = v13;
							end;
							break;
						end;
						if u7 == u7 then

						else
							pcall(function()
								if v17 then
									if v18 then
										v17:Disconnect();
										v18:Disconnect();
									end;
								end;
							end);
							if u7 == nil then
								l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
									FillTransparency = 1,
									OutlineTransparency = 1
								}):Play();
								task.wait(0.2);
								if u7 == nil then
									if u8 == u8 then
										l__Highlight__9.Adornee = nil;
										l__Highlight__9.Enabled = false;
										l__PromptFrame__1.Visible = false;
										l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											BackgroundTransparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											Transparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											ImageTransparency = 1
										}):Play();
									end;
								end;
							elseif l__PromptFrame__1.Visible then
								u11 = v13;
							end;
							break;
						end;
						if u7 then

						else
							pcall(function()
								if v17 then
									if v18 then
										v17:Disconnect();
										v18:Disconnect();
									end;
								end;
							end);
							if u7 == nil then
								l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
									FillTransparency = 1,
									OutlineTransparency = 1
								}):Play();
								task.wait(0.2);
								if u7 == nil then
									if u8 == u8 then
										l__Highlight__9.Adornee = nil;
										l__Highlight__9.Enabled = false;
										l__PromptFrame__1.Visible = false;
										l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											BackgroundTransparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											Transparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											ImageTransparency = 1
										}):Play();
									end;
								end;
							elseif l__PromptFrame__1.Visible then
								u11 = v13;
							end;
							break;
						end;
						if l__PromptFrame__1.Visible then

						else
							pcall(function()
								if v17 then
									if v18 then
										v17:Disconnect();
										v18:Disconnect();
									end;
								end;
							end);
							if u7 == nil then
								l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
									FillTransparency = 1,
									OutlineTransparency = 1
								}):Play();
								task.wait(0.2);
								if u7 == nil then
									if u8 == u8 then
										l__Highlight__9.Adornee = nil;
										l__Highlight__9.Enabled = false;
										l__PromptFrame__1.Visible = false;
										l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											BackgroundTransparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											Transparency = 1
										}):Play();
										l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
											ImageTransparency = 1
										}):Play();
									end;
								end;
							elseif l__PromptFrame__1.Visible then
								u11 = v13;
							end;
							break;
						end;
						if v15 then
							v21 = l__Parent__14:GetPivot().Position;
						else
							v21 = l__Parent__14.WorldPosition;
						end;
						if v16 then
							if v16 ~= nil then
								v21 = v16:Lerp(v21, l__TweenService__6:GetValue((tick() - v19) * 4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out));
							end;
						end;
						u10 = v13;
						v22, v23 = l__CurrentCamera__12:WorldToScreenPoint(v13 - Vector3.new(0, 0.2, 0));
						l__PromptFrame__1.Position = UDim2.new(0, math.clamp(v22.X, 80, v8.AbsoluteSize.X - 80), 0, math.clamp(v22.Y, 80, v8.AbsoluteSize.Y - 80));
						l__Highlight__9.Adornee = l__Parent__14;
						l__Highlight__9.Enabled = true;
						task.wait();
						if 0 <= 1 then
							if v20 < 100000000 then

							else
								break;
							end;
						elseif 100000000 < v20 then

						else
							break;
						end;
						v20 = v20 + 1;
					end;
				end;
			else
				v19 = tick();
				v20 = 1 - 1;
				while true do
					if p1 then

					else
						pcall(function()
							if v17 then
								if v18 then
									v17:Disconnect();
									v18:Disconnect();
								end;
							end;
						end);
						if u7 == nil then
							l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
								FillTransparency = 1,
								OutlineTransparency = 1
							}):Play();
							task.wait(0.2);
							if u7 == nil then
								if u8 == u8 then
									l__Highlight__9.Adornee = nil;
									l__Highlight__9.Enabled = false;
									l__PromptFrame__1.Visible = false;
									l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										BackgroundTransparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										Transparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										ImageTransparency = 1
									}):Play();
								end;
							end;
						elseif l__PromptFrame__1.Visible then
							u11 = v13;
						end;
						break;
					end;
					if u7 == u7 then

					else
						pcall(function()
							if v17 then
								if v18 then
									v17:Disconnect();
									v18:Disconnect();
								end;
							end;
						end);
						if u7 == nil then
							l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
								FillTransparency = 1,
								OutlineTransparency = 1
							}):Play();
							task.wait(0.2);
							if u7 == nil then
								if u8 == u8 then
									l__Highlight__9.Adornee = nil;
									l__Highlight__9.Enabled = false;
									l__PromptFrame__1.Visible = false;
									l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										BackgroundTransparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										Transparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										ImageTransparency = 1
									}):Play();
								end;
							end;
						elseif l__PromptFrame__1.Visible then
							u11 = v13;
						end;
						break;
					end;
					if u7 then

					else
						pcall(function()
							if v17 then
								if v18 then
									v17:Disconnect();
									v18:Disconnect();
								end;
							end;
						end);
						if u7 == nil then
							l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
								FillTransparency = 1,
								OutlineTransparency = 1
							}):Play();
							task.wait(0.2);
							if u7 == nil then
								if u8 == u8 then
									l__Highlight__9.Adornee = nil;
									l__Highlight__9.Enabled = false;
									l__PromptFrame__1.Visible = false;
									l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										BackgroundTransparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										Transparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										ImageTransparency = 1
									}):Play();
								end;
							end;
						elseif l__PromptFrame__1.Visible then
							u11 = v13;
						end;
						break;
					end;
					if l__PromptFrame__1.Visible then

					else
						pcall(function()
							if v17 then
								if v18 then
									v17:Disconnect();
									v18:Disconnect();
								end;
							end;
						end);
						if u7 == nil then
							l__TweenService__6:Create(l__Highlight__9, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
								FillTransparency = 1,
								OutlineTransparency = 1
							}):Play();
							task.wait(0.2);
							if u7 == nil then
								if u8 == u8 then
									l__Highlight__9.Adornee = nil;
									l__Highlight__9.Enabled = false;
									l__PromptFrame__1.Visible = false;
									l__TweenService__6:Create(l__InteractButton__4, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										BackgroundTransparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										Transparency = 1
									}):Play();
									l__TweenService__6:Create(l__InteractButton__4.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
										ImageTransparency = 1
									}):Play();
								end;
							end;
						elseif l__PromptFrame__1.Visible then
							u11 = v13;
						end;
						break;
					end;
					if v15 then
						v21 = l__Parent__14:GetPivot().Position;
					else
						v21 = l__Parent__14.WorldPosition;
					end;
					if v16 then
						if v16 ~= nil then
							v21 = v16:Lerp(v21, l__TweenService__6:GetValue((tick() - v19) * 4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out));
						end;
					end;
					u10 = v13;
					v22, v23 = l__CurrentCamera__12:WorldToScreenPoint(v13 - Vector3.new(0, 0.2, 0));
					l__PromptFrame__1.Position = UDim2.new(0, math.clamp(v22.X, 80, v8.AbsoluteSize.X - 80), 0, math.clamp(v22.Y, 80, v8.AbsoluteSize.Y - 80));
					l__Highlight__9.Adornee = l__Parent__14;
					l__Highlight__9.Enabled = true;
					task.wait();
					if 0 <= 1 then
						if v20 < 100000000 then

						else
							break;
						end;
					elseif 100000000 < v20 then

					else
						break;
					end;
					v20 = v20 + 1;
				end;
			end;
		end;
	end);
end;
local u12 = 0;
l__ProximityPromptService__5.PromptShown:Connect(function(p3)
	if p3.ObjectText ~= "Hint" then
		u7 = p3.Changed:Connect(function()
			update(p3);
		end);
		u12 = u12 + 1;
		update(p3);
		script.Notification:Play();
	end;
end);
l__ProximityPromptService__5.PromptHidden:Connect(function(p4)
	if p4.ObjectText ~= "Hint" then
		l__PromptFrame__1.Bar.Bar:TweenSize(UDim2.new(0, 0, 1, 0), "Out", "Sine", 0.1, true);
		l__PromptFrame__1.Visible = false;
		pcall(function()
			u7:Disconnect();
		end);
		u7 = nil;
		u12 = u12 - 1;
	end;
end);
l__ProximityPromptService__5.PromptTriggered:Connect(function(p5)
	if p5.ObjectText ~= "Hint" then
		update(p5, true);
		v1.camShaker:ShakeOnce(1, 1, 0.2, 0.7, Vector3.new(0, 0, 0));
		l__PromptFrame__1.Bar.Bar:TweenSize(UDim2.new(0, 0, 1, 0), "Out", "Sine", 0.1, true);
		script.Triggered:Play();
		script.Holding:Stop();
		l__PromptFrame__1.CenterImage.Position = UDim2.new(0.5, 0, 0.52, 0);
		l__TweenService__6:Create(l__PromptFrame__1.CenterImage, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
			Position = UDim2.new(0.5, 0, 0.5, 0),
			ImageTransparency = 0
		}):Play();
	end;
end);
l__ProximityPromptService__5.PromptButtonHoldBegan:Connect(function(p6)
	if p6.ObjectText ~= "Hint" then
		update(p6);
		l__PromptFrame__1.Bar.Bar:TweenSize(UDim2.new(1, 0, 1, 0), "In", "Sine", p6.HoldDuration, true);
		script.Holding:Play();
		l__TweenService__6:Create(l__PromptFrame__1.CenterImage, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
			Position = UDim2.new(0.5, 0, 0.52, 0),
			ImageTransparency = 0
		}):Play();
	end;
end);
l__ProximityPromptService__5.PromptButtonHoldEnded:Connect(function(p7)
	if p7.ObjectText ~= "Hint" then
		update(p7);
		script.Holding:Stop();
		l__TweenService__6:Create(l__PromptFrame__1.CenterImage, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
			Position = UDim2.new(0.5, 0, 0.5, 0),
			ImageTransparency = 0
		}):Play();
	end;
end);


Prompt: -- Variables (best not to touch these!)

Response:
local button = script.Parent .Parent.Parent
local car = script.Parent.Parent.Parent.Parent.Car.Value
local sound = script.Parent.Parent.Start
local st = script.Parent.Parent.Stall
st.Parent = car.DriveSeat
sound.Parent = car.DriveSeat -- What brick the start sound is playing from.
button.MouseButton1Click:connect(function() -- Event when the button is clicked
	if script.Parent.Parent.Parent.Text == "Engine: Off" then -- If the text says it's off then..
		sound:Play() -- Startup sound plays..
		wait(0.85) -- I don't know what to put for this
		script.Parent.Parent.Parent.Parent.IsOn.Value = true -- The car is is on, or in other words, start up the car.
		button.Text = "Engine: On"  -- You don't really need this, but I would keep it.
	else -- If it's on then when you click the button,
		st:play()
		script.Parent.Parent.Parent.Parent.IsOn.Value = false -- The car is turned off.
		button.Text = "Engine: Off"
	end -- Don't touch this.
end) -- And don't touch this either.


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local l__Players__1 = game:GetService("Players");
local u1 = Vector3.new(0, 0, 0);
local v2 = require(script.Parent:WaitForChild("BaseOcclusion"));
local v3 = setmetatable({}, v2);
v3.__index = v3;
local u2 = {
	LIMBS = 2,
	MOVEMENT = 3,
	CORNERS = 4,
	CIRCLE1 = 5,
	CIRCLE2 = 6,
	LIMBMOVE = 7,
	SMART_CIRCLE = 8,
	CHAR_OUTLINE = 9
};
function v3.new()
	local v4 = setmetatable(v2.new(), v3);
	v4.char = nil;
	v4.humanoidRootPart = nil;
	v4.torsoPart = nil;
	v4.headPart = nil;
	v4.childAddedConn = nil;
	v4.childRemovedConn = nil;
	v4.behaviors = {};
	v4.behaviors[u2.LIMBS] = v4.LimbBehavior;
	v4.behaviors[u2.MOVEMENT] = v4.MoveBehavior;
	v4.behaviors[u2.CORNERS] = v4.CornerBehavior;
	v4.behaviors[u2.CIRCLE1] = v4.CircleBehavior;
	v4.behaviors[u2.CIRCLE2] = v4.CircleBehavior;
	v4.behaviors[u2.LIMBMOVE] = v4.LimbMoveBehavior;
	v4.behaviors[u2.SMART_CIRCLE] = v4.SmartCircleBehavior;
	v4.behaviors[u2.CHAR_OUTLINE] = v4.CharacterOutlineBehavior;
	v4.mode = u2.SMART_CIRCLE;
	v4.behaviorFunction = v4.SmartCircleBehavior;
	v4.savedHits = {};
	v4.trackedLimbs = {};
	v4.camera = game.Workspace.CurrentCamera;
	v4.enabled = false;
	return v4;
end;
function v3.Enable(p1, p2)
	p1.enabled = p2;
	if not p2 then
		p1:Cleanup();
	end;
end;
function v3.GetOcclusionMode(p3)
	return Enum.DevCameraOcclusionMode.Invisicam;
end;
function v3.LimbBehavior(p4, p5)
	for v5, v6 in pairs(p4.trackedLimbs) do
		p5[#p5 + 1] = v5.Position;
	end;
end;
function v3.MoveBehavior(p6, p7)
	for v7 = 1, 3 do
		local l__Velocity__8 = p6.humanoidRootPart.Velocity;
		p7[#p7 + 1] = p6.humanoidRootPart.Position + (v7 - 1) * p6.humanoidRootPart.CFrame.lookVector * (Vector3.new(l__Velocity__8.X, 0, l__Velocity__8.Z).Magnitude / 2);
	end;
end;
local u3 = { Vector3.new(1, 1, -1), Vector3.new(1, -1, -1), Vector3.new(-1, -1, -1), Vector3.new(-1, 1, -1) };
function v3.CornerBehavior(p8, p9)
	local l__CFrame__9 = p8.humanoidRootPart.CFrame;
	local l__Position__10 = l__CFrame__9.Position;
	local v11 = l__CFrame__9 - l__Position__10;
	local v12 = p8.char:GetExtentsSize() / 2;
	p9[#p9 + 1] = l__Position__10;
	for v13 = 1, #u3 do
		p9[#p9 + 1] = l__Position__10 + v11 * (v12 * u3[v13]);
	end;
end;
function v3.CircleBehavior(p10, p11)
	if p10.mode == u2.CIRCLE1 then
		local v14 = p10.humanoidRootPart.CFrame;
	else
		local l__CoordinateFrame__15 = p10.camera.CoordinateFrame;
		v14 = l__CoordinateFrame__15 - l__CoordinateFrame__15.Position + p10.humanoidRootPart.Position;
	end;
	p11[#p11 + 1] = v14.Position;
	for v16 = 0, 9 do
		local v17 = 2 * math.pi / 10 * v16;
		p11[#p11 + 1] = v14 * (3 * Vector3.new(math.cos(v17), math.sin(v17), 0));
	end;
end;
function v3.LimbMoveBehavior(p12, p13)
	p12:LimbBehavior(p13);
	p12:MoveBehavior(p13);
end;
function v3.CharacterOutlineBehavior(p14, p15)
	local l__unit__18 = p14.torsoPart.CFrame.upVector.unit;
	local l__unit__19 = p14.torsoPart.CFrame.rightVector.unit;
	p15[#p15 + 1] = p14.torsoPart.CFrame.p;
	p15[#p15 + 1] = p14.torsoPart.CFrame.p + l__unit__18;
	p15[#p15 + 1] = p14.torsoPart.CFrame.p - l__unit__18;
	p15[#p15 + 1] = p14.torsoPart.CFrame.p + l__unit__19;
	p15[#p15 + 1] = p14.torsoPart.CFrame.p - l__unit__19;
	if p14.headPart then
		p15[#p15 + 1] = p14.headPart.CFrame.p;
	end;
	local v20 = CFrame.new(u1, Vector3.new(p14.camera.CoordinateFrame.lookVector.X, 0, p14.camera.CoordinateFrame.lookVector.Z));
	local v21 = p14.torsoPart and p14.torsoPart.Position or p14.humanoidRootPart.Position;
	local v22 = { p14.torsoPart };
	if p14.headPart then
		v22[#v22 + 1] = p14.headPart;
	end;
	for v23 = 1, 24 do
		local v24 = 2 * math.pi * v23 / 24;
		local v25 = v20 * (3 * Vector3.new(math.cos(v24), math.sin(v24), 0));
		local v26 = Vector3.new(v25.X, math.max(v25.Y, -2.25), v25.Z);
		local v27, v28 = game.Workspace:FindPartOnRayWithWhitelist(Ray.new(v21 + v26, -3 * v26), v22, false);
		if v27 then
			p15[#p15 + 1] = v28 + 0.2 * (v21 - v28).unit;
		end;
	end;
end;
local u4 = 2 * math.pi / 24;
local function u5(p16, p17, p18, p19)
	local v29 = p17:Cross(p19);
	local v30 = p18.X - p16.X;
	local v31 = p18.Y - p16.Y;
	local v32 = p18.Z - p16.Z;
	local l__Y__33 = p17.Y;
	local v34 = -p19.Y;
	local l__Y__35 = v29.Y;
	local l__Z__36 = p17.Z;
	local v37 = -p19.Z;
	local l__Z__38 = v29.Z;
	local v39 = p17.X * (v34 * l__Z__38 - l__Y__35 * v37) - -p19.X * (l__Y__33 * l__Z__38 - l__Y__35 * l__Z__36) + v29.X * (l__Y__33 * v37 - v34 * l__Z__36);
	if v39 == 0 then
		return u1;
	end;
	local v40 = -p19.Y;
	local l__Y__41 = v29.Y;
	local v42 = -p19.Z;
	local l__Z__43 = v29.Z;
	local l__Y__44 = p17.Y;
	local l__Y__45 = v29.Y;
	local l__Z__46 = p17.Z;
	local l__Z__47 = v29.Z;
	local v48 = p16 + (v30 * (v40 * l__Z__43 - l__Y__41 * v42) - -p19.X * (v31 * l__Z__43 - l__Y__41 * v32) + v29.X * (v31 * v42 - v40 * v32)) / v39 * p17;
	local v49 = p18 + (p17.X * (v31 * l__Z__47 - l__Y__45 * v32) - v30 * (l__Y__44 * l__Z__47 - l__Y__45 * l__Z__46) + v29.X * (l__Y__44 * v32 - v31 * l__Z__46)) / v39 * p19;
	if (v49 - v48).Magnitude < 0.25 then
		return v48 + 0.5 * (v49 - v48);
	end;
	return u1;
end;
function v3.SmartCircleBehavior(p20, p21)
	local l__unit__50 = p20.torsoPart.CFrame.upVector.unit;
	local l__unit__51 = p20.torsoPart.CFrame.rightVector.unit;
	p21[#p21 + 1] = p20.torsoPart.CFrame.p;
	p21[#p21 + 1] = p20.torsoPart.CFrame.p + l__unit__50;
	p21[#p21 + 1] = p20.torsoPart.CFrame.p - l__unit__50;
	p21[#p21 + 1] = p20.torsoPart.CFrame.p + l__unit__51;
	p21[#p21 + 1] = p20.torsoPart.CFrame.p - l__unit__51;
	if p20.headPart then
		p21[#p21 + 1] = p20.headPart.CFrame.p;
	end;
	local v52 = p20.camera.CFrame - p20.camera.CFrame.p;
	local v53 = Vector3.new(0, 0.5, 0) + (p20.torsoPart and p20.torsoPart.Position or p20.humanoidRootPart.Position);
	for v54 = 1, 24 do
		local v55 = u4 * v54 - 0.5 * math.pi;
		local v56 = v53 + v52 * (2.5 * Vector3.new(math.cos(v55), math.sin(v55), 0));
		local v57 = v56 - p20.camera.CFrame.p;
		local v58, v59, v60 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(v53, v56 - v53), { p20.char }, false, false);
		local v61 = v56;
		if v58 then
			local v62 = v59 + 0.1 * v60.unit;
			local v63 = v62 - v53;
			local l__unit__64 = v63:Cross(v57).unit:Cross(v60).unit;
			if v63.unit:Dot(-l__unit__64) < v63.unit:Dot((v62 - p20.camera.CFrame.p).unit) then
				v61 = u5(v62, l__unit__64, v56, v57);
				if v61.Magnitude > 0 then
					local v65, v66, v67 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(v62, v61 - v62), { p20.char }, false, false);
					if v65 then
						v61 = v66 + 0.1 * v67.unit;
					end;
				else
					v61 = v62;
				end;
			else
				v61 = v62;
			end;
			local v68, v69, v70 = game.Workspace:FindPartOnRayWithIgnoreList(Ray.new(v53, v61 - v53), { p20.char }, false, false);
			if v68 then
				v61 = v69 - 0.1 * (v61 - v53).unit;
			end;
		end;
		p21[#p21 + 1] = v61;
	end;
end;
function v3.CheckTorsoReference(p22)
	if p22.char then
		p22.torsoPart = p22.char:FindFirstChild("Torso");
		if not p22.torsoPart then
			p22.torsoPart = p22.char:FindFirstChild("UpperTorso");
			if not p22.torsoPart then
				p22.torsoPart = p22.char:FindFirstChild("HumanoidRootPart");
			end;
		end;
		p22.headPart = p22.char:FindFirstChild("Head");
	end;
end;
local u6 = {
	Head = true,
	["Left Arm"] = true,
	["Right Arm"] = true,
	["Left Leg"] = true,
	["Right Leg"] = true,
	LeftLowerArm = true,
	RightLowerArm = true,
	LeftUpperLeg = true,
	RightUpperLeg = true
};
function v3.CharacterAdded(p23, p24, p25)
	if p25 ~= l__Players__1.LocalPlayer then
		return;
	end;
	if p23.childAddedConn then
		p23.childAddedConn:Disconnect();
		p23.childAddedConn = nil;
	end;
	if p23.childRemovedConn then
		p23.childRemovedConn:Disconnect();
		p23.childRemovedConn = nil;
	end;
	p23.char = p24;
	p23.trackedLimbs = {};
	p23.childAddedConn = p24.ChildAdded:Connect(function(p26)
		if p26:IsA("BasePart") then
			if u6[p26.Name] then
				p23.trackedLimbs[p26] = true;
			end;
			if p26.Name == "Torso" or p26.Name == "UpperTorso" then
				p23.torsoPart = p26;
			end;
			if p26.Name == "Head" then
				p23.headPart = p26;
			end;
		end;
	end);
	p23.childRemovedConn = p24.ChildRemoved:Connect(function(p27)
		p23.trackedLimbs[p27] = nil;
		p23:CheckTorsoReference();
	end);
	for v71, v72 in pairs(p23.char:GetChildren()) do
		if v72:IsA("BasePart") then
			if u6[v72.Name] then
				p23.trackedLimbs[v72] = true;
			end;
			if v72.Name == "Torso" or v72.Name == "UpperTorso" then
				p23.torsoPart = v72;
			end;
			if v72.Name == "Head" then
				p23.headPart = v72;
			end;
		end;
	end;
end;
local function u7(p28, ...)
	local v73 = {};
	local v74 = "";
	for v75, v76 in pairs({ ... }) do
		v73[v76] = true;
		if v74 == "" then
			local v77 = "";
		else
			v77 = " or ";
		end;
		v74 = v74 .. v77 .. v76;
	end;
	local v78 = type(p28);
	assert(v73[v78], v74 .. " type expected, got: " .. v78);
end;
function v3.SetMode(p29, p30)
	u7(p30, "number");
	for v79, v80 in pairs(u2) do
		if v80 == p30 then
			p29.mode = p30;
			p29.behaviorFunction = p29.behaviors[p29.mode];
			return;
		end;
	end;
	error("Invalid mode number");
end;
function v3.GetObscuredParts(p31)
	return p31.savedHits;
end;
function v3.Cleanup(p32)
	for v81, v82 in pairs(p32.savedHits) do
		v81.LocalTransparencyModifier = v82;
	end;
end;
function v3.Update(p33, p34, p35, p36)
	local v83 = nil;
	if not p33.enabled or not p33.char then
		return p35, p36;
	end;
	p33.camera = game.Workspace.CurrentCamera;
	if not p33.humanoidRootPart then
		local v84 = p33.char:FindFirstChildOfClass("Humanoid");
		if v84 and v84.RootPart then
			p33.humanoidRootPart = v84.RootPart;
		else
			p33.humanoidRootPart = p33.char:FindFirstChild("HumanoidRootPart");
			if not p33.humanoidRootPart then
				return p35, p36;
			end;
		end;
		local u8 = nil;
		u8 = p33.humanoidRootPart.AncestryChanged:Connect(function(p37, p38)
			if p37 == p33.humanoidRootPart and not p38 then
				p33.humanoidRootPart = nil;
				if u8 and u8.Connected then
					u8:Disconnect();
					u8 = nil;
				end;
			end;
		end);
	end;
	if not p33.torsoPart then
		p33:CheckTorsoReference();
		if not p33.torsoPart then
			return p35, p36;
		end;
	end;
	local v85 = {};
	p33:behaviorFunction(v85);
	local v86 = { p33.char };
	local u9 = {};
	local v87 = 0;
	local v88 = {};
	local v89 = 0.75;
	local v90 = 0.75;
	local v91 = p33.camera:GetPartsObscuringTarget({ p33.headPart and p33.headPart.CFrame.p or v85[1], p33.torsoPart and p33.torsoPart.CFrame.p or v85[2] }, v86);
	for v92 = 1, #v91 do
		local v93 = v91[v92];
		v83 = v87 + 1;
		v88[v93] = true;
		for v94, v95 in pairs(v93:GetChildren()) do
			if v95:IsA("Decal") then
				v83 = v83 + 1;
				break;
			end;
			if v95:IsA("Texture") then
				v83 = v83 + 1;
				break;
			end;
		end;
	end;
	if v83 > 0 then
		v89 = math.pow(0.375 + 0.375 / v83, 1 / v83);
		v90 = math.pow(0.25 + 0.25 / v83, 1 / v83);
	end;
	local v96 = p33.camera:GetPartsObscuringTarget(v85, v86);
	local v97 = {};
	for v98 = 1, #v96 do
		local v99 = v96[v98];
		v97[v99] = v88[v99] and v89 or v90;
		if v99.Transparency < v97[v99] then
			u9[v99] = true;
			if not p33.savedHits[v99] then
				p33.savedHits[v99] = v99.LocalTransparencyModifier;
			end;
		end;
		for v100, v101 in pairs(v99:GetChildren()) do
			if (v101:IsA("Decal") or v101:IsA("Texture")) and v101.Transparency < v97[v99] then
				v97[v101] = v97[v99];
				u9[v101] = true;
				if not p33.savedHits[v101] then
					p33.savedHits[v101] = v101.LocalTransparencyModifier;
				end;
			end;
		end;
	end;
	for v102, v103 in pairs(p33.savedHits) do
		if u9[v102] then
			v102.LocalTransparencyModifier = v102.Transparency < 1 and (v97[v102] - v102.Transparency) / (1 - v102.Transparency) or 0;
		else
			v102.LocalTransparencyModifier = v103;
			p33.savedHits[v102] = nil;
		end;
	end;
	return p35, p36;
end;
return v3;


Prompt: -- Object that the player can interact with

Response:
local NPC_NAME = "Maja-M35"
local target = workspace:FindFirstChild(NPC_NAME):FindFirstChild("InteractionPart")
local ClickDetector = target:FindFirstChild("ClickDetector")
local InteractionFrame = target:FindFirstChild("InteractionFrame")
local InteractionImage = InteractionFrame:FindFirstChild("InteractionImage")


Prompt:
--------------------- TEMPLATE BLADE WEAPON ---------------------------
-- Waits for the child of the specified parent

Response:
local function WaitForChild(parent, childName)
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
	return parent[childName]
end

local SLASH_DAMAGE = 40
local DOWNSTAB_DAMAGE = 70
local THROWING_DAMAGE = 60
local HOLD_TO_THROW_TIME = 0.4

local Damage = 55

local MyHumanoid = nil
local MyTorso = nil
local MyCharacter = nil
local MyPlayer = nil

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

local BlowConnection
local Button1DownConnection
local Button1UpConnection

local PlayStabPunch
local PlayDownStab
local PlayThrow
local PlayThrowCharge

local IconUrl = Tool.TextureId  -- URL to the weapon knife icon asset

local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')

local SlashSound

local HitPlayers = {}

local LeftButtonDownTime = nil

local Attacking = false

function Blow(hit)
	if Attacking then
		BlowDamage(hit, Damage)
	end
end

function BlowDamage(hit, damage)
	local humanoid = hit.Parent:FindFirstChild('Humanoid')
	local player = PlayersService:GetPlayerFromCharacter(hit.Parent)
	if humanoid ~= nil and MyHumanoid ~= nil and humanoid ~= MyHumanoid then
		if not MyPlayer.Neutral then
			-- Ignore teammates hit
			if player and player ~= MyPlayer and player.TeamColor == MyPlayer.TeamColor then
				return
			end
		end
		-- final check, make sure weapon is in-hand
		local rightArm = MyCharacter:FindFirstChild('Right Arm')
		if (rightArm ~= nil) then
			-- Check if the weld exists between the hand and the weapon
			local joint = rightArm:FindFirstChild('RightGrip')
			if (joint ~= nil and (joint.Part0 == Handle or joint.Part1 == Handle)) then
				-- Make sure you only hit them once per swing
					TagHumanoid(humanoid, MyPlayer)
					print("Sending " .. damage)

					local checksound = humanoid.Parent:findFirstChild("Sound")
					if checksound == nil then
					local givesound = script.Parent.Sound:clone()
					givesound.Parent = humanoid.Parent
					givesound.Disabled = false
					else
					checksound:remove()
					local givesound = script.Parent.Sound:clone()
					givesound.Parent = humanoid.Parent
					givesound.Disabled = false
					end
					wait()
					humanoid:TakeDamage(humanoid.MaxHealth)
					if humanoid.Health == math.huge or humanoid.MaxHealth == math.huge then
						humanoid.Parent:BreakJoints()
					end
				end
		end
	end
end

function TagHumanoid(humanoid, player)
	-- Add more tags here to customize what tags are available.
	while humanoid:FindFirstChild('creator') do
		humanoid:FindFirstChild('creator'):Destroy()
	end

	local creatorTag = Instance.new('ObjectValue')
	creatorTag.Value = player
	creatorTag.Name = 'creator'
	creatorTag.Parent = humanoid
	DebrisService:AddItem(creatorTag, 1.5)

	local weaponIconTag = Instance.new('StringValue')
	weaponIconTag.Value = IconUrl
	weaponIconTag.Name = 'icon'
	weaponIconTag.Parent = creatorTag
	DebrisService:AddItem(weaponIconTag, 1.5)
end

function HardAttack()
	Damage = SLASH_DAMAGE
	HitSound:play()
	if PlayStabPunch then
		PlayStabPunch.Value = true
		wait(1.0)
		PlayStabPunch.Value = false
	end
end

function NormalAttack()
	Damage = DOWNSTAB_DAMAGE
	KnifeDown()
	HitSound:play()
	if PlayDownStab then
		PlayDownStab.Value = true
		wait(1.0)
		PlayDownStab.Value = false
	end
	KnifeUp()
end

function ThrowAttack()
	KnifeOut()
	if PlayThrow then
		PlayThrow.Value = true
		wait()
		if not Handle then return end
		local throwingHandle = Handle:Clone()
		DebrisService:AddItem(throwingHandle, 5)
		throwingHandle.Parent = game.Workspace
		if MyCharacter and MyHumanoid then
			throwingHandle.Velocity = (MyHumanoid.TargetPoint - throwingHandle.CFrame.p).unit * 100
			-- set the orientation to the direction it is being thrown in
			throwingHandle.CFrame = CFrame.new(throwingHandle.CFrame.p, throwingHandle.CFrame.p + throwingHandle.Velocity) * CFrame.Angles(0, 0, math.rad(-90))
			local floatingForce = Instance.new('BodyForce', throwingHandle)
			floatingForce.force = Vector3.new(0, 196.2 * throwingHandle:GetMass() * 0.98, 0)
			local spin = Instance.new('BodyAngularVelocity', throwingHandle)
			spin.angularvelocity = throwingHandle.CFrame:vectorToWorldSpace(Vector3.new(0, -400, 0))
		end
		Handle.Transparency = 1
		-- Wait so that the knife has left the thrower's general area
		wait()
		if throwingHandle then
			local Throwevent = script.Parent.ThrowHandleHitWeld:Clone()
			Throwevent.Parent = throwingHandle
			Throwevent.Disabled = false
			local touchedConn = throwingHandle.Touched:connect(function(hit) print("hit throw") BlowDamage(hit, THROWING_DAMAGE) end)
		end
		-- must check if it still exists since we waited
		if throwingHandle then
			throwingHandle.CanCollide = true
		end
		wait(0.6)
		if Handle and PlayThrow then
			Handle.Transparency = 0
			PlayThrow.Value = false
		end
	end
	KnifeUp()
end

function KnifeUp()
	Tool.GripForward = Vector3.new(0,0,-1)
	Tool.GripRight = Vector3.new(1,0,0)
	Tool.GripUp = Vector3.new(0,1,0)
end

function KnifeDown()
	Tool.GripForward = Vector3.new(0,0,-1)
	Tool.GripRight = Vector3.new(1,0,0)
	Tool.GripUp = Vector3.new(0,-1,0)
end

function KnifeOut()
	Tool.GripForward = Vector3.new(0,0,-1)
	Tool.GripRight = Vector3.new(1,0,0)
	Tool.GripUp = Vector3.new(0,1,0)
end

Tool.Enabled = true

function OnLeftButtonDown()
	LeftButtonDownTime = time()
	if PlayThrowCharge then
		PlayThrowCharge.Value = true
	end
end

function OnLeftButtonUp()
	if not Tool.Enabled then return end
	-- Reset the list of hit players every time we start a new attack
	HitPlayers = {}
	if PlayThrowCharge then
		PlayThrowCharge.Value = false
	end
	if Tool.Enabled and MyHumanoid and MyHumanoid.Health > 0 then
		Tool.Enabled = false
		local currTime = time()
		if LeftButtonDownTime and currTime - LeftButtonDownTime > HOLD_TO_THROW_TIME and
			currTime - LeftButtonDownTime < 1.15 then
			ThrowAttack()
		else
			Attacking = true
			if math.random(1, 2) == 1 then
				HardAttack()
			else
				NormalAttack()
			end
			Attacking = false
		end
		Tool.Enabled = true
	end
end

function OnEquipped(mouse)
	PlayStabPunch = WaitForChild(Tool, 'PlayStabPunch')
	PlayDownStab = WaitForChild(Tool, 'PlayDownStab')
	PlayThrow = WaitForChild(Tool, 'PlayThrow')
	PlayThrowCharge = WaitForChild(Tool, 'PlayThrowCharge')
 	SlashSound = WaitForChild(Handle, 'Swoosh1')
	HitSound = WaitForChild(Handle, 'Ting')
	SlashSound:play()
	BlowConnection = Handle.Touched:connect(Blow)
	MyCharacter = Tool.Parent
	MyTorso = MyCharacter:FindFirstChild('Torso')
	MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
	MyPlayer = PlayersService.LocalPlayer
	if mouse then
		Button1DownConnection = mouse.Button1Down:connect(OnLeftButtonDown)
		Button1UpConnection = mouse.Button1Up:connect(OnLeftButtonUp)
	end
	KnifeUp()
end

function OnUnequipped()
	-- Unequip logic here
	if BlowConnection then
		BlowConnection:disconnect()
		BlowConnection = nil
	end
	if Button1DownConnection then
		Button1DownConnection:disconnect()
		Button1DownConnection = nil
	end
	if Button1UpConnection then
		Button1UpConnection:disconnect()
		Button1UpConnection = nil
	end
	MyHumanoid = nil
end

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


Prompt: ------------------------------------ Settings

Response:
local Player = game.Players.LocalPlayer
local tweenService = game:GetService("TweenService")
local Char = Player.Character
local Camera = game.Workspace.CurrentCamera
local MenuCam = game.Workspace:WaitForChild("MenuCam")
local Process = false

wait(game:IsLoaded())
MenuCam.Transparency = 1
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CFrame = MenuCam.CFrame
local BlurEffect = Instance.new("BlurEffect")
BlurEffect.Size = 0
BlurEffect.Parent = game.Lighting

local Black = tweenService:Create(script.Parent:WaitForChild("Black") ,TweenInfo.new(2,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.Out),
	{Transparency = 0})
local UnBlack = tweenService:Create(script.Parent:WaitForChild("Black") ,TweenInfo.new(2,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.Out),
	{Transparency = 1})
local Blur = tweenService:Create(BlurEffect ,TweenInfo.new(2,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.Out),
	{Size = 20})
local UnBlur = tweenService:Create(BlurEffect ,TweenInfo.new(1,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.Out),
	{Size = 0})

if SettingsEnabled == false then
	script.Parent.SettingsButton.Visible = false
end
if CreditsEnabled == false then
	script.Parent.CreditsButton.Visible = false
else
	if script.Parent:WaitForChild("CreditsFrame"):WaitForChild("Frame"):FindFirstChild("TextLabel") then
		if script.Parent:WaitForChild("CreditsFrame"):WaitForChild("Frame"):WaitForChild("TextLabel").Text == "Scripter -" then
			script.Parent.CreditsFrame.Frame.TextLabel.Text = "Scripter - "..Player.Name
		end
	end
end
script.Parent:WaitForChild("GameMusic").Playing = true

script.Parent.SettingsButton.MouseButton1Click:Connect(function()
	if Process == true then return end
	Process = true
	if script.Parent.SettingsFrame.Position == UDim2.new(0.5, 0,-0.4, 0) then
		script.Parent.SettingsFrame:TweenPosition(UDim2.new(0.5, 0,0.5, 0), "Out", "Quad", 1)
		script.Parent.PlayButton:TweenPosition(UDim2.new(-0.3, 0,0.353, 0), "Out", "Quad", 0.5)
		script.Parent.SettingsButton:TweenPosition(UDim2.new(-0.3, 0,0.508, 0), "Out", "Quad", 0.5)
		script.Parent.CreditsButton:TweenPosition(UDim2.new(-0.3, 0,0.636, 0), "Out", "Quad", 0.5)
		Blur:Play()
	else
		script.Parent.SettingsFrame:TweenPosition(UDim2.new(0.5, 0,-0.4, 0), "Out", "Quad", 1)
		script.Parent.PlayButton:TweenPosition(UDim2.new(0.005, 0,0.353, 0), "Out", "Quad", 0.5)
		script.Parent.SettingsButton:TweenPosition(UDim2.new(0.005, 0,0.508, 0), "Out", "Quad", 0.5)
		script.Parent.CreditsButton:TweenPosition(UDim2.new(0.005, 0,0.636, 0), "Out", "Quad", 0.5)
		UnBlur:Play()
	end
	wait(2)
	Process = false
end)

script.Parent.CreditsButton.MouseButton1Click:Connect(function()
	if Process == true then return end
	Process = true
	if script.Parent.CreditsFrame.Position == UDim2.new(0.5, 0,-0.4, 0) then
		script.Parent.CreditsFrame:TweenPosition(UDim2.new(0.5, 0,0.5, 0), "Out", "Quad", 1)
		script.Parent.PlayButton:TweenPosition(UDim2.new(-0.3, 0,0.353, 0), "Out", "Quad", 0.5)
		script.Parent.SettingsButton:TweenPosition(UDim2.new(-0.3, 0,0.508, 0), "Out", "Quad", 0.5)
		script.Parent.CreditsButton:TweenPosition(UDim2.new(-0.3, 0,0.636, 0), "Out", "Quad", 0.5)
		Blur:Play()
	else
		script.Parent.CreditsFrame:TweenPosition(UDim2.new(0.5, 0,-0.4, 0), "Out", "Quad", 1)
		script.Parent.PlayButton:TweenPosition(UDim2.new(0.005, 0,0.353, 0), "Out", "Quad", 0.5)
		script.Parent.SettingsButton:TweenPosition(UDim2.new(0.005, 0,0.508, 0), "Out", "Quad", 0.5)
		script.Parent.CreditsButton:TweenPosition(UDim2.new(0.005, 0,0.636, 0), "Out", "Quad", 0.5)
		UnBlur:Play()
	end
	wait(2)
	Process = false
end)

script.Parent.CreditsFrame.ExitButton.MouseButton1Click:Connect(function()
	if Process == true then return end
	Process = true
	script.Parent.CreditsFrame:TweenPosition(UDim2.new(0.5, 0,-0.4, 0), "Out", "Quad", 1)
	script.Parent.PlayButton:TweenPosition(UDim2.new(0.005, 0,0.353, 0), "Out", "Quad", 0.5)
	script.Parent.SettingsButton:TweenPosition(UDim2.new(0.005, 0,0.508, 0), "Out", "Quad", 0.5)
	script.Parent.CreditsButton:TweenPosition(UDim2.new(0.005, 0,0.636, 0), "Out", "Quad", 0.5)
	UnBlur:Play()
	wait(2)
	Process = false
end)

script.Parent.SettingsFrame.ExitButton.MouseButton1Click:Connect(function()
	if Process == true then return end
	Process = true
	script.Parent.SettingsFrame:TweenPosition(UDim2.new(0.5, 0,-0.4, 0), "Out", "Quad", 1)
	script.Parent.PlayButton:TweenPosition(UDim2.new(0.005, 0,0.353, 0), "Out", "Quad", 0.5)
	script.Parent.SettingsButton:TweenPosition(UDim2.new(0.005, 0,0.508, 0), "Out", "Quad", 0.5)
	script.Parent.CreditsButton:TweenPosition(UDim2.new(0.005, 0,0.636, 0), "Out", "Quad", 0.5)
	UnBlur:Play()
	wait(2)
	Process = false
end)

if script.Parent.SettingsFrame.Frame:FindFirstChild("Shadows") then
	script.Parent.SettingsFrame.Frame.Shadows.MouseButton1Click:Connect(function()
		if script.Parent.SettingsFrame.Frame.Shadows.Text == "X" then
			script.Parent.SettingsFrame.Frame.Shadows.Text = ""
			game.Lighting.GlobalShadows = false
		else
			script.Parent.SettingsFrame.Frame.Shadows.Text = "X"
			game.Lighting.GlobalShadows = true
		end
	end)
end
if script.Parent.SettingsFrame.Frame:FindFirstChild("Time") then
	script.Parent.SettingsFrame.Frame.Time.MouseButton1Click:Connect(function()
		if script.Parent.SettingsFrame.Frame.Time.Text == "DAY" then
			script.Parent.SettingsFrame.Frame.Time.Text = "NIGHT"
			game.Lighting.ClockTime = NightClockTime
		else
			script.Parent.SettingsFrame.Frame.Time.Text = "DAY"
			game.Lighting.ClockTime = DayClockTime
		end
	end)
end
if script.Parent.SettingsFrame.Frame:FindFirstChild("Music") then
	script.Parent.SettingsFrame.Frame.Music.MouseButton1Click:Connect(function()
		if script.Parent.SettingsFrame.Frame.Music.Text == "X" then
			script.Parent.SettingsFrame.Frame.Music.Text = ""
			script.Parent.GameMusic.Playing = false
		else
			script.Parent.SettingsFrame.Frame.Music.Text = "X"
			script.Parent.GameMusic.Playing = true
		end
	end)
end
script.Parent.PlayButton.MouseButton1Click:Connect(function()
	if Process == true then return end
	Process = true
	Black:Play()
	wait(3)
	Camera.CameraType = Enum.CameraType.Custom
	script.Parent.PlayButton:Destroy()
	script.Parent.SettingsButton:Destroy()
	script.Parent.CreditsButton:Destroy()
	UnBlack:Play()
end)


Prompt: -- // NOTE: This module is not written by me, but slightly modified \\ --

Response:
function PriorityQueue.new()
	return setmetatable({
		heap = {},
		current_size = 0
	}, PriorityQueue)
end

function PriorityQueue:isEmpty()
	return self.current_size == 0
end

function PriorityQueue:size()
	return self.current_size
end

function PriorityQueue:swim()
	-- Swim up on the tree and fix the order heap property.
	local floor = floor
	local heap = self.heap
	local i = self.current_size

	local half = floor(i / 2)

	while half > 0 do
		if heap[i][2] < heap[half][2] then
			heap[i], heap[half] = heap[half], heap[i]
		end

		i = half
		half = floor(i / 2)
	end
end

function PriorityQueue:Push(v, p)
    --[[ Put an item on the queue.
    Args:
        v: the item to be stored
        p(number): the priority of the item
    ]]--
	--
	table.insert(self.heap, {v, p})
	self.current_size += 1
	self:swim()
end


Response:
local path
local waypoint

local chaseName = nil

function GetTorso(part)
	local chars = game.Workspace:GetDescendants()
	local chaseRoot = nil
	local chaseTorso = nil
	local chasePlr = nil
	local chaseHuman = nil
	local mag = SearchDistance
	script.Parent.WantToAttack.Changed:Connect(function()
		if script.Parent.WantToAttack.Value == true then
			mag = SearchDistance
		else
			if script.Parent.WantToScare.Value == true then
				mag = SearchDistance/1.5
			else
				mag = 0
			end
		end
	end)
	for i = 1, #chars do
		chasePlr = chars[i]
		if chasePlr:IsA'Model' and not chasePlr:FindFirstChild("Enemy") and chasePlr:FindFirstChild("Seen") then
			chaseHuman = getHumanoid(chasePlr)
			chaseRoot = chasePlr:FindFirstChild'HumanoidRootPart'
			if chaseRoot ~= nil and chaseHuman ~= nil and chaseHuman.Health > 0 and not chaseHuman:FindFirstChild("Enemy") and not chasePlr:FindFirstChild("Helper") then
				if (chaseRoot.Position - part).magnitude < mag then
					chaseName = chasePlr.Name
					chaseTorso = chaseRoot
					mag = (chaseRoot.Position - part).magnitude
				end
			end
		end
	end
	return chaseTorso
end

function GetPlayersBodyParts(t)
	local torso = t
	if torso then
		local figure = torso.Parent
		for _, v in pairs(figure:GetChildren())do
			if v:IsA'Part' then
				return v.Name
			end
		end
	else
		return "HumanoidRootPart"
	end
end


Prompt: --Made by Luckymaxer

Response:
Tool = script.Parent
Handle = Tool:WaitForChild("Handle")
Barrel = Handle:WaitForChild("Muzzle")

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

AmmoDisplay = script:WaitForChild("AmmoDisplay"):Clone()
CastLaser = Tool:WaitForChild("CastLaser"):Clone()

Camera = game:GetService("Workspace").CurrentCamera

BaseUrl = "http://www.roblox.com/asset/?id="

AnimationTracks = {}
LocalObjects = {}

Animations = {
	Hold = {Animation = Tool:WaitForChild("Hold"), FadeTime = nil, Weight = nil, Speed = 1, Duration = 2},
	Fire = {Animation = Tool:WaitForChild("Fire"), FadeTime = 0.25, Weight = nil, Speed = 0.5, Duration = 0.5},
	Reload = {Animation = Tool:WaitForChild("Reload"), FadeTime = nil, Weight = nil, Speed = 0.5, Duration = 3},
}

Sounds = {
	Reload = Handle:WaitForChild("Reload"),
	NoAmmo = Handle:WaitForChild("NoAmmo"),
}

Modules = Tool:WaitForChild("Modules")
Functions = require(Modules:WaitForChild("Functions"))

Remotes = Tool:WaitForChild("Remotes")
ServerControl = Remotes:WaitForChild("ServerControl")
ClientControl = Remotes:WaitForChild("ClientControl")

ConfigurationBin = Tool:WaitForChild("Configuration")
Configuration = {}
Configuration = Functions.CreateConfiguration(ConfigurationBin, Configuration)

InputCheck = Instance.new("ScreenGui")
InputCheck.Name = "InputCheck"
InputButton = Instance.new("ImageButton")
InputButton.Name = "InputButton"
InputButton.Image = ""
InputButton.BackgroundTransparency = 1
InputButton.ImageTransparency = 1
InputButton.Size = UDim2.new(1, 0, 1, 0)
InputButton.Parent = InputCheck

Cursors = {
	Normal = (BaseUrl .. "170908665"),
	EnemyHit = (BaseUrl .. "172618259"),
}

Rate = (1 / 60)

FiringOffset = Vector3.new(0, ((Handle.Size.Y / 4) - 0.2), -(Handle.Size.Z / 2))

Reloading = false
MouseDown = false
ToolEquipped = false

Tool.Enabled = true

function SetAnimation(mode, value)
	if mode == "PlayAnimation" and value and ToolEquipped and Humanoid then
		for i, v in pairs(AnimationTracks) do
			if v.Animation == value.Animation then
				v.AnimationTrack:Stop()
				table.remove(AnimationTracks, i)
			end
		end
		local AnimationTrack = Humanoid:LoadAnimation(value.Animation)
		table.insert(AnimationTracks, {Animation = value.Animation, AnimationTrack = AnimationTrack})
		AnimationTrack:Play(value.FadeTime, value.Weight, value.Speed)
	elseif mode == "StopAnimation" and value then
		for i, v in pairs(AnimationTracks) do
			if v.Animation == value.Animation then
				v.AnimationTrack:Stop(value.FadeTime)
				table.remove(AnimationTracks, i)
			end
		end
	end
end

function ToggleGui()
	if not AmmoDisplayClone or not AmmoDisplayClone.Parent then
		return
	end
	local Frame = AmmoDisplayClone.Frame
	local Ammo = Frame.Ammo
	if Configuration.Ammo.ClipSize.MaxValue > 0 then
		Ammo.AmmoCounter.CounterPart.Text = Configuration.Ammo.ClipSize.Value
	end
	Ammo.MagCounter.CounterPart.Text = Configuration.Ammo.Magazines.Value
end

function Reload()
	if Reloading or not Tool.Enabled or Configuration.Ammo.Magazines.Value >= Configuration.Ammo.Magazines.MaxValue then
		return
	end
	Tool.Enabled = false
	Reloading = true
	ToggleGui()
	local CanReload = true
	if Configuration.Ammo.ClipSize.MaxValue > 0 and Configuration.Ammo.ClipSize.Value <= 0 then
		CanReload = false
	else
		CanReload = true
	end
	if CanReload then
		Spawn(function()
			local Animation = Animations.Reload
			OnClientInvoke("PlayAnimation", Animation)
			wait(Animation.Duration)
			OnClientInvoke("StopAnimation", Animation)
		end)
		Sounds.Reload:Play()
		local AddedClips = ((Configuration.Ammo.Magazines.MaxValue > 0 and (Configuration.Ammo.Magazines.MaxValue - Configuration.Ammo.Magazines.Value)) or Configuration.Ammo.ClipSize.MaxValue)
		if Configuration.Ammo.ClipSize.MaxValue > 0 then
			AddedClips = ((AddedClips > Configuration.Ammo.ClipSize.Value and Configuration.Ammo.ClipSize.Value) or AddedClips)
		end
		--[[local ReloadRate = (Configuration.ReloadTime.Value / Configuration.Ammo.Magazines.MaxValue)
		for i = 1, AddedClips do
			wait(ReloadTime)
			Configuration.Ammo.Magazines.Value = (Configuration.Ammo.Magazines.Value + 1)
		end]]
		wait(Configuration.ReloadTime.Value)
		Configuration.Ammo.Magazines.Value = (Configuration.Ammo.Magazines.Value + AddedClips)
		Configuration.Ammo.ClipSize.Value = (Configuration.Ammo.ClipSize.Value - AddedClips)
		Sounds.Reload:Stop()
		ToggleGui()
	end
	Reloading = false
	Tool.Enabled = true
end

function RayTouched(Hit, Position)
	if not Hit or not Hit.Parent then
		return
	end
	local character = Hit.Parent
	if character:IsA("Hat") then
		character = character.Parent
	end
	if character == Character then
		return
	end
	local humanoid = character:FindFirstChild("Humanoid")
	local SoundChosen = Sounds.RayHit
	if not humanoid or humanoid.Health == 0 then
		return
	end
	local player = Players:GetPlayerFromCharacter(character)
	if player and Functions.IsTeamMate(Player, player) then
		return
	end
	Spawn(function()
		IconChangeTick = tick()
		PlayerMouse.Icon = Cursors.EnemyHit
		wait(1)
		if (tick() - IconChangeTick) >= 0.95 and ToolEquipped and PlayerMouse then
			PlayerMouse.Icon = Cursors.Normal
		end
	end)
end

function FireRay(StartPosition, TargetPosition)
	local Direction = CFrame.new(StartPosition, TargetPosition).lookVector
	local RayHit, RayPos, RayNormal = Functions.CastRay(StartPosition, Direction, Configuration.Range.Value, {Character}, false)
	local Backpack = Player:FindFirstChild("Backpack")
	if Backpack then
		local LaserScript = CastLaser:Clone()
		local StartPos = Instance.new("Vector3Value")
		StartPos.Name = "StartPosition"
		StartPos.Value = StartPosition
		StartPos.Parent = LaserScript
		local TargetPos = Instance.new("Vector3Value")
		TargetPos.Name = "TargetPosition"
		TargetPos.Value = RayPos
		TargetPos.Parent = LaserScript
		local RayHit = Instance.new("BoolValue")
		RayHit.Name = "RayHit"
		RayHit.Value = RayHit
		RayHit.Parent = LaserScript
		LaserScript.Disabled = false
		LaserScript.Parent = Backpack
	end
	Spawn(function()
		InvokeServer("CastLaser", {StartPosition = StartPosition, TargetPosition = RayPos, RayHit = ((RayHit and true) or false)})
	end)
	Spawn(function()
		InvokeServer("RayHit", {Hit = RayHit, Position = RayPos})
	end)
	RayTouched(RayHit, RayPos)
end

function Button1Pressed(Down)
	if not Down and MouseDown then
		MouseDown = false
	end
end

function KeyPress(Key, Down)
	if Key == "r" and Down then
		Reload()
	end
end

function Activated()
	if not Tool.Enabled or not ToolEquipped or Reloading then
		return
	end
	Tool.Enabled = false
	if Configuration.Ammo.Magazines.Value > 0 then
		local FirstShot = false
		if Configuration.Automatic.Value then
			MouseDown = true
		end
		OnClientInvoke("StopAnimation", {Animation = Animations.Fire.Animation, FadeTime = nil})
		OnClientInvoke("PlayAnimation", Animations.Fire)
		while MouseDown or not FirstShot and ToolEquipped and CheckIfAlive() do
			if Configuration.Ammo.Magazines.Value <= 0 or not ToolEquipped or not CheckIfAlive() then
				break
			end
			if not FirstShot then
				FirstShot = true
			end
			local BurstAmount = math.random(Configuration.Burst.Bullets.MinValue, Configuration.Burst.Bullets.MaxValue)
			local WithinFiringRange = false
			Spawn(function()
				InvokeServer("Fire", true)
			end)
			for i = 1, ((BurstAmount > 0 and BurstAmount) or 1) do
				local TargetPosition = OnClientInvoke("MousePosition")
				if not TargetPosition then
					break
				end
				TargetPosition = TargetPosition.Position
				local StartPosition = Barrel.WorldPosition --(Handle.CFrame * CFrame.new(FiringOffset.X, FiringOffset.Y, FiringOffset.Z)).p
				if BurstAmount > 0 then
					local Offset = (Configuration.Burst.Offset.Value * 100)
					TargetPosition = TargetPosition + Vector3.new((math.random(-Offset.X, Offset.X) * 0.01), (math.random(-Offset.Y, Offset.Y) * 0.01), (math.random(-Offset.Z, Offset.Z) * 0.01))
				end
				local Accuracy = (Configuration.Accuracy.Value * 100)
				TargetPosition = TargetPosition + Vector3.new((math.random(-Accuracy.X, Accuracy.X) * 0.01), (math.random(-Accuracy.Y, Accuracy.Y) * 0.01), (math.random(-Accuracy.Z, Accuracy.Z) * 0.01))
				Configuration.Ammo.Magazines.Value = (Configuration.Ammo.Magazines.Value - 1)
				FireRay(StartPosition, TargetPosition)
			end
			ToggleGui()
			wait(Configuration.FireRate.Value)
		end
		OnClientInvoke("StopAnimation", {Animation = Animations.Fire.Animation, FadeTime = 0.25})
	else
		Tool.Enabled = true
		Sounds.NoAmmo:Play()
		Reload()
	end
	MouseDown = false
	Tool.Enabled = true
	if Configuration.Ammo.Magazines.Value <= 0 then
		Sounds.NoAmmo:Play()
		Reload()
	end
end

function CheckIfAlive()
	return (((Player and Player.Parent and Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0) and true) or false)
end

function Equipped(Mouse)
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChild("Humanoid")
	if not CheckIfAlive() then
		return
	end
	ToolEquipped = true
	Spawn(function()
		PlayerMouse = Player:GetMouse()
		Mouse.Button1Down:connect(function()
			Button1Pressed(true)
		end)
		Mouse.Button1Up:connect(function()
			Button1Pressed(false)
		end)
		Mouse.KeyDown:connect(function(Key)
			KeyPress(Key, true)
		end)
		Mouse.KeyUp:connect(function(Key)
			KeyPress(Key, false)
		end)
		Humanoid.CameraOffset = Vector3.new(0, 0.35, 0)
		OnClientInvoke("PlayAnimation", Animations.Hold)
		local PlayerGui = Player:FindFirstChild("PlayerGui")
		if PlayerGui then
			if UserInputService.TouchEnabled then
				InputCheckClone = InputCheck:Clone()
				InputCheckClone.InputButton.InputBegan:connect(function()
					InvokeServer("Button1Click", {Down = true})
				end)
				InputCheckClone.InputButton.InputEnded:connect(function()
					InvokeServer("Button1Click", {Down = false})
				end)
				InputCheckClone.Parent = PlayerGui
			end
			local function AdjustAmmoDisplay()
				local Frame = AmmoDisplayClone.Frame
				Frame.CurrentWeapon.Text = Configuration.ToolName.Value
				local Ammo = Frame.Ammo
				Ammo.AmmoCounter.CounterPart.Text = ((Configuration.Ammo.ClipSize.MaxValue > 0 and Configuration.Ammo.ClipSize.Value) or "--")
				Ammo.MagCounter.CounterPart.Text = Configuration.Ammo.Magazines.Value
			end
			AmmoDisplayClone = AmmoDisplay:Clone()
			AdjustAmmoDisplay()
			AmmoDisplayClone.Parent = PlayerGui
			ToggleGui()
			for i, v in pairs({ClipSizeChanged, MagazinesChanged}) do
				if v then
					v:disconnect()
				end
			end
			ClipSizeChanged = Configuration.Ammo.ClipSize.Changed:connect(function()
				AdjustAmmoDisplay()
			end)
			MagazinesChanged = Configuration.Ammo.Magazines.Changed:connect(function()
				AdjustAmmoDisplay()
			end)
		end
		for i, v in pairs({"Left Arm", "Right Arm"}) do
			local Arm = Character:FindFirstChild(v)
			if Arm then
				Spawn(function()
					OnClientInvoke("SetLocalTransparencyModifier", {Object = Arm, Transparency = 0, AutoUpdate = false})
				end)
			end
		end
		Mouse.Icon = Cursors.Normal
	end)
end

function Unequipped()
	LocalObjects = {}
	if CheckIfAlive() then
		Humanoid.CameraOffset = Vector3.new(0, 0, 0)
	end
	for i, v in pairs(Sounds) do
		v:Stop()
	end
	if PlayerMouse then
		PlayerMouse.Icon = ""
	end
	for i, v in pairs({InputCheckClone, ObjectLocalTransparencyModifier, AmmoDisplayClone, ClipSizeChanged, MagazinesChanged}) do
		if tostring(v) == "Connection" then
			v:disconnect()
		elseif v and v.Parent then
			v:Destroy()
		end
	end
	MouseDown = false
	for i, v in pairs(AnimationTracks) do
		if v and v.AnimationTrack then
			v.AnimationTrack:Stop()
		end
	end
	AnimationTracks = {}
	ToolEquipped = false
end

function InvokeServer(mode, value)
	pcall(function()
		local ServerReturn = ServerControl:InvokeServer(mode, value)
		return ServerReturn
	end)
end

function OnClientInvoke(mode, value)
	if mode == "PlayAnimation" and value and ToolEquipped and Humanoid then
		SetAnimation("PlayAnimation", value)
	elseif mode == "StopAnimation" and value then
		SetAnimation("StopAnimation", value)
	elseif mode == "PlaySound" and value then
		value:Play()
	elseif mode == "StopSound" and value then
		value:Stop()
	elseif mode == "MousePosition" then
		return {Position = PlayerMouse.Hit.p, Target = PlayerMouse.Target}
	elseif mode == "SetLocalTransparencyModifier" and value and ToolEquipped then
		pcall(function()
			local ObjectFound = false
			for i, v in pairs(LocalObjects) do
				if v == value then
					ObjectFound = true
				end
			end
			if not ObjectFound then
				table.insert(LocalObjects, value)
				if ObjectLocalTransparencyModifier then
					ObjectLocalTransparencyModifier:disconnect()
				end
				ObjectLocalTransparencyModifier = RunService.RenderStepped:connect(function()
					for i, v in pairs(LocalObjects) do
						if v.Object and v.Object.Parent then
							local CurrentTransparency = v.Object.LocalTransparencyModifier
							if ((not v.AutoUpdate and (CurrentTransparency == 1 or  CurrentTransparency == 0)) or v.AutoUpdate) then
								v.Object.LocalTransparencyModifier = v.Transparency
							end
						else
							table.remove(LocalObjects, i)
						end
					end
				end)
			end
		end)
	end
end

ClientControl.OnClientInvoke = OnClientInvoke

Tool.Activated:connect(Activated)
Tool.Equipped:connect(Equipped)
Tool.Unequipped:connect(Unequipped)


Prompt: --Drivetrain

Response:
Tune.TransModes		= {"Auto", "Semi", "Manual"}		--{"Auto", "Semi", "Manual"}
Tune.AutoShiftMode	= "RPM"				--"RPM" , "Speed"
Tune.AutoUpThresh	= 0
Tune.AutoDownThresh = 1400

Tune.FDiffSlipThres	= 20					-- 1 - 100%				(Max threshold of applying full lock determined by deviation from avg speed)
Tune.FDiffLockThres	= 40					-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
Tune.RDiffSlipThres	= 20					-- 1 - 100%
Tune.RDiffLockThres	= 40					-- 0 - 100%
Tune.CDiffSlipThres	= 40					-- 1 - 100%				[AWD Only]
Tune.CDiffLockThres	= 30					-- 0 - 100%				[AWD Only]

Tune.TCSThreshold	= 15
Tune.TCSGradient	= 20
Tune.TCSLimit		= .05
Tune.Config			= "RWD"					--"FWD" , "RWD" , "AWD"
Tune.FinalDrive		= 3.9
Tune.Ratios			= {
	--[[Reverse]]	3.62		,
	--[[Neutral]]	0			,
	--[[ 1 ]]		6.8			,
	--[[ 2 ]]		3.9 		,
	--[[ 3 ]]		2.3  		,
	--[[ 4 ]]		1.4	    	,
	--[[ 5 ]]		1.0  		,
	--[[ 6 ]]       0.9         ,
}
Tune.BrakeForce		= 35000
Tune.PBrakeForce	= 40000


Prompt: -- Player List

Response:
local iswhitelisted = whitelist:CheckWhitelist(game.Players.LocalPlayer.Name)
if iswhitelisted == false then  rs.Whitelist:Destroy() script.Parent.Toggle:Destroy() script.Parent.Panel:Destroy() script:Destroy() return end

function fixcanvas()
	local amount = script.Parent.Panel.PlayerList:GetChildren()
	local fixedamount = #amount-1
	print(fixedamount)
	script.Parent.Panel.PlayerList.CanvasSize = UDim2.new(0,0,0,fixedamount*35)
end

for i,v in pairs(game.Players:GetPlayers()) do
	local username = script.Username:Clone()
	username.Name = v.Name
	username.Text = v.Name
	username.Parent = script.Parent.Panel.PlayerList
	fixcanvas()
	username.MouseButton1Click:Connect(function()
		if game.Players:FindFirstChild(username.Name) then
			chosenplr =  game.Players:FindFirstChild(username.Name)
		end
	end)
end
game.Players.PlayerAdded:Connect(function(plr)
	local username = script.Username:Clone()
	username.Name = plr.Name
	username.Text = plr.Name
	username.Parent = script.Parent.Panel.PlayerList
		fixcanvas()
username.MouseButton1Click:Connect(function()
		if game.Players:FindFirstChild(username.Name) then
			chosenplr =  game.Players:FindFirstChild(username.Name)
		end
	end)
end)
game.Players.PlayerRemoving:Connect(function(plr)
	local name = script.Parent.Panel.PlayerList:FindFirstChild(plr.Name)
	if name then
		name:Destroy()
	end
		fixcanvas()

end)

for i,buttons in pairs(script.Parent.Panel.Buttons:GetChildren()) do
	buttons.MouseButton1Click:Connect(function()
	local arg2 = nil
	if buttons:FindFirstChildOfClass("TextBox") then
		arg2 = buttons:FindFirstChildOfClass("TextBox").Text
	end
	print(arg2)
	remote:FireServer(buttons.Name,chosenplr,arg2)
	end)
end
script.Parent.Toggle.MouseButton1Click:Connect(function()
	script.Parent.Panel.Visible = not script.Parent.Panel.Visible
end)


Prompt:
--[=[
	Observes children and ensures that the value is cleaned up
	afterwards.
	@param value any
	@param parent Instance
	@return Observable<Instance>
]=]

Response:
function Blend._observeChildren(value, parent)
	if typeof(value) == "Instance" then
		-- Should be uncommon
		return Observable.new(function(sub)
			sub:Fire(value)
			-- don't complete, as this would clean everything up
			return value
		end)
	end

	if type(value) == "function" then
		value = Blend._observeChildren(value(parent), parent)
	end

	if ValueObject.isValueObject(value) then
		return Observable.new(function(sub)
			local maid = Maid.new()

			-- Switch instead of emitting every value.
			local function update()
				local result = value.Value
				if typeof(result) == "Instance" then
					maid._current = result
					sub:Fire(result)
					return
				end

				local observe = Blend._observeChildren(result, parent)
				if observe then
					maid._current = nil

					local doCleanup = false
					local cleanup
					cleanup = observe:Subscribe(function(inst)
						sub:Fire(inst)
					end, function(...)
						sub:Fail(...)
					end, function()
						-- incase of immediate execution
						doCleanup = true

						-- Do not pass complete through to the end
						if maid._current == cleanup then
							maid._current = nil
						end
					end)

					-- TODO: Complete when valueobject cleans up

					if doCleanup then
						if cleanup then
							MaidTaskUtils.doCleanup(cleanup)
						end
					else
						maid._current = cleanup
					end

					return
				end

				maid._current = nil
			end
			maid:GiveTask(value.Changed:Connect(update))
			update()

			return maid
		end)
	end

	if Brio.isBrio(value) then
		return Observable.new(function(sub)
			if value:IsDead() then
				return nil
			end

			local result = value:GetValue()
			if typeof(result) == "Instance" then
				local maid = value:ToMaid()
				maid:GiveTask(result)
				sub:Fire(result)

				return maid
			end

			local observe = Blend._observeChildren(result, parent)
			if observe then
				local maid = value:ToMaid()

				-- Subscription is for lifetime of brio, so we do
				-- not need to specifically add these results to the maid, and
				-- risk memory leak of the maid with a lot of items in it.
				maid:GiveTask(observe:Subscribe(function(inst)
					sub:Fire(inst)
				end, function(...)
					sub:Fail(...)
				end, function()
					-- completion should not result more than maid cleaning up
					maid:DoCleaning()
				end))

				return maid
			end

			warn(("Unknown type in brio %q"):format(typeof(result)))
			return nil
		end)
	end

	-- Handle like observable
	if Promise.isPromise(value) then
		value = Rx.fromPromise(value)
	end

	-- Handle like observable
	if Signal.isSignal(value) or typeof(value) == "RBXScriptSignal" then
		value = Rx.fromSignal(value)
	end

	if Observable.isObservable(value) then
		return Observable.new(function(sub)
			local maid = Maid.new()

			maid:GiveTask(value:Subscribe(function(result)
				if typeof(result) == "Instance" then
					-- lifetime of subscription
					maid:GiveTask(result)
					sub:Fire(result)
					return
				end

				local observe = Blend._observeChildren(result, parent)

				if observe then
					local innerMaid = Maid.new()

					-- Note: I think this still memory leaks
					innerMaid:GiveTask(observe:Subscribe(function(inst)
						sub:Fire(inst)
					end, function(...)
						innerMaid:DoCleaning()
						sub:Fail(...)
					end, function()
						innerMaid:DoCleaning()
					end))

					innerMaid:GiveTask(function()
						maid[innerMaid] = nil
					end)
					maid[innerMaid] = innerMaid
				else
					warn(("Failed to convert %q into children"):format(tostring(result)))
				end
			end, function(...)
				sub:Fire(...)
			end, function()
				-- Drop completion, other inner components may have completed.
			end))

			return maid
		end)
	end

	if type(value) == "table" and not getmetatable(value) then
		local observables = {}
		for key, item in pairs(value) do
			local observe = Blend._observeChildren(item, parent)
			if observe then
				table.insert(observables, observe)
			else
				warn(("Failed to convert [%s] %q into children"):format(tostring(key), tostring(item)))
			end
		end

		if next(observables) then
			return Rx.merge(observables)
		else
			return nil
		end
	end

	return nil
end


Prompt: --------|    Variables    |--------

Response:
local lastCalc
local lastCalcTick = 0


Prompt:
----------------------------------------------------------------------------
---  Functions  ------------------------------------------------------------
----------------------------------------------------------------------------

Response:
local function DestroyDroplet(d)
	wait(Fade)

	-- Proper GC
	for _, Child in ipairs(d:GetChildren()) do
		local Index = table.find(ignoreList, Child)
		if Index then
			ignoreList[Index] = ignoreList[IgnoreLength]
			ignoreList[IgnoreLength] = nil
			IgnoreLength = IgnoreLength - 1
		end
	end

	local Index = table.find(ignoreList, d)
	if Index then
		ignoreList[Index] = ignoreList[IgnoreLength]
		ignoreList[IgnoreLength] = nil
		IgnoreLength = IgnoreLength - 1
	end

	d:Destroy()
end


Prompt: --Made by Haustier and Luckymaxer

Response:
local detectionDistance = 20

function followNearestPlayer()
	local players = game.Players:GetChildren()
	local head = script.Parent.Head

	for i = 1, #players do
		if players[i].Character then
			if players[i].Character.Humanoid.Health > 0 then
				local playerPos = players[i].Character.Head.Position
				local distanceAway = (head.Position - playerPos).magnitude
				if distanceAway <= detectionDistance then
					local ray = Ray.new(head.Position, (playerPos - head.Position).unit * distanceAway)
					local ignore = {script.Parent, players[i].Character}
					local obj, pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, ignore)
					if obj == nil then
						script.Parent.Movement.Disabled = true
						script.Parent.Humanoid:MoveTo(playerPos)
					elseif obj then
						script.Parent.Movement.Disabled = false
					end
				end
			end
		else
			script.Parent.Movement.Disabled = false
		end
	end
end

while wait() do
	followNearestPlayer()
end


Prompt: --//SS6 PLUGIN; SPLASH//--

Response:
  --//INSPARE 2017//--

local ai = script.Parent.Main_Frame.A.Frame.ImageLabel
local bi = script.Parent.Main_Frame.B.Frame.ImageLabel
local ci = script.Parent.Main_Frame.C.Frame.ImageLabel
local di = script.Parent.Main_Frame.D.Frame.ImageLabel
local ei = script.Parent.Main_Frame.E.Frame.ImageLabel
wait(.2)
script.Parent.SplashFade.TH:Play()
while true do
	for i=1,3 do
		for i=1,5 do
			ai.Position = ai.Position - UDim2.new(4,0,0,0)
			bi.Position = bi.Position - UDim2.new(4,0,0,0)
			ci.Position = ci.Position - UDim2.new(4,0,0,0)
			di.Position = di.Position - UDim2.new(4,0,0,0)
			ei.Position = ei.Position - UDim2.new(4,0,0,0)
			wait(.045)
		end
		ai.Position = ai.Position + UDim2.new(20,0,-3,0)
		bi.Position = bi.Position + UDim2.new(20,0,-3,0)
		ci.Position = ci.Position + UDim2.new(20,0,-3,0)
		di.Position = di.Position + UDim2.new(20,0,-3,0)
		ei.Position = ei.Position + UDim2.new(20,0,-3,0)
		wait(.045)
	end
	for i=1,3 do
		ai.Position = ai.Position - UDim2.new(4,0,0,0)
		bi.Position = bi.Position - UDim2.new(4,0,0,0)
		ci.Position = ci.Position - UDim2.new(4,0,0,0)
		di.Position = di.Position - UDim2.new(4,0,0,0)
		ei.Position = ei.Position - UDim2.new(4,0,0,0)
		wait(.045)
	end
	ai.Position = ai.Position + UDim2.new(12,0,9,0)
	bi.Position = bi.Position + UDim2.new(12,0,9,0)
	ci.Position = ci.Position + UDim2.new(12,0,9,0)
	di.Position = di.Position + UDim2.new(12,0,9,0)
	ei.Position = ei.Position + UDim2.new(12,0,9,0)
	wait(.045)
end


Response:
function module.Create(radius,Position,rockSize, DespawnTime, AmountFlyingDebris)
	local ModelCircle = Instance.new("Model",workspace.Terrain)
	ModelCircle.Name = "Debris"
	Debris:AddItem(ModelCircle,5)

	local Y = Position.Y

	local Material
	local Transparency
	local Color

	local IgnoreList = {}

	for _,object in pairs(workspace:GetDescendants()) do
		if object.Name == "Debree" or object:FindFirstChildWhichIsA("Humanoid") then
			table.insert(IgnoreList,object)
		end
	end

	local RPParams = RaycastParams.new()
	RPParams.FilterDescendantsInstances = IgnoreList
	RPParams.FilterType = Enum.RaycastFilterType.Blacklist

	local ray = workspace:Raycast(Position + Vector3.new(0,0.1,0),Vector3.new(0,-999,0),RPParams)

	if ray then
		Y = ray.Position.Y
		Material = ray.Material
		Transparency = ray.Instance.Transparency
		Color = ray.Instance.Color
	end

	local parts = {}

	for i = 0,radius * 8,rockSize do
		table.insert(parts,Instance.new("Part",ModelCircle))
	end

	local function getXAndZPositions(angle)
		local x = math.cos(angle) * radius
		local z = math.sin(angle) * radius
		return x, z
	end

	for i, part in pairs(parts) do
		part.Anchored = true
		part.Name = "Debree"
		part.Size = Vector3.new(0,0,0)
		local angle = (i*rockSize) * (360 / #parts)
		local x,z = getXAndZPositions(angle)
		table.insert(IgnoreList,part)
		RPParams.FilterDescendantsInstances = IgnoreList

		part.CFrame = CFrame.new(Position) * CFrame.new(x, 0, z)
		part.Position = Vector3.new(part.Position.X,Y,part.Position.Z)
		part.CFrame *= CFrame.Angles(math.rad(math.random(-90,90)),math.rad(math.random(-90,90)),math.rad(math.random(-90,90)))

		if AccurateRepresentation == true then
			local raynew = workspace:Raycast(part.Position + Vector3.new(0,0.1,0),Vector3.new(0,-999,0),RPParams)

			if raynew then
				part.Material = raynew.Material
				part.Transparency = raynew.Instance.Transparency
				part.Color = raynew.Instance.Color
			else
				--part.Material = Material
				--part.Transparency = Transparency
				--part.Color = Color
			end
		else
			part.Material = Materials[math.random(1,#Materials)]
			part.Color = Colors[math.random(1,#Colors)]
		end

		part.Parent = workspace
		TS:Create(part,TweenInfo.new(0.2),{Size = Vector3.new(rockSize,rockSize,rockSize)}):Play()

		task.spawn(function()
			task.wait(DespawnTime)
			TS:Create(part,TweenInfo.new(0.1),{Size = Vector3.new(0,0,0)}):Play()
			Debris:AddItem(part,0.11)
		end)
	end

	for i = 0,AmountFlyingDebris do
		local DebrisVelocity = Vector3.new(math.random(-50,50),math.floor(70,120),math.random(-50,50))

		local part = Instance.new("Part",ModelCircle)
		part.CanCollide = false
		part.Size = Vector3.new(0,0,0)
		part.Massless = true
		part.Name = "Debree"
		TS:Create(part,TweenInfo.new(0.2),{Size = Vector3.new(rockSize,rockSize,rockSize)}):Play()

		if AccurateRepresentation == true then
			part.Material = Material
			part.Transparency = Transparency
			part.Color = Color
		else
			part.Material = Materials[math.random(1,#Materials)]
			part.Color = Colors[math.random(1,#Colors)]
		end

		part.Position = Position + Vector3.new(0,rockSize,0)
		part.Velocity = DebrisVelocity
		part.AssemblyAngularVelocity = Vector3.new(math.random(-90,90),math.random(-90,90),math.random(-90,90))

		task.spawn(function()
			wait(0.5)
			part.CanCollide = FlyingDebrisCollision
		end)

		task.spawn(function()
			task.wait(DespawnTime)
			TS:Create(part,TweenInfo.new(0.5,Enum.EasingStyle.Cubic),{Size = Vector3.new(0,0,0)}):Play()

			Debris:AddItem(part,1)
		end)
	end

	return
end

return module


Prompt: --!strict

Response:
local LuauPolyfill = script.Parent.Parent
local types = require(LuauPolyfill.types)
type Array<T> = types.Array<T>


Prompt:
--[[
	ParentToPlayerGUI

	Description: This script injects the parent into the players gui as soon as they load into the game so the
	UI is available.
]]


Prompt:
-----------------------------------------------------------
----------------------- STATIC DATA -----------------------
-----------------------------------------------------------

Response:
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Modules = ReplicatedStorage:WaitForChild("SharedModules")

local DamageModule = require(Modules.DamageModule)
local Utilities = require(Modules.Utilities)
local Signal = Utilities.Signal
local table = Utilities.Table
local Thread = Utilities.Thread

local TargetEvent
if RunService:IsClient() then
	TargetEvent = RunService.RenderStepped
else
	TargetEvent = RunService.Heartbeat
end

local Projectiles = {}
local RemoveList = {}


Prompt: -- DefaultValue for spare ammo

Response: local SpareAmmo = 99999


Prompt:
-- Developer : AinStrqfe
-- Developer : AinStrqfe
-- Developer : AinStrqfe

Response:
local hitbox = script.Parent

hitbox.Touched:Connect(function(touch)

	local char = touch.Parent

	if game.Players:GetPlayerFromCharacter(char) then

		if char:FindFirstChild("Humanoid") then

			char.Humanoid.MaxHealth = math.huge
			char.Humanoid.Health = math.huge
			char.Humanoid.WalkSpeed = 20

		end
	end
end)

hitbox.TouchEnded:Connect(function(touch)

	local char = touch.Parent

	if game.Players:GetPlayerFromCharacter(char) then

		if char:FindFirstChild("Humanoid") then

			char.Humanoid.MaxHealth = 100
			char.Humanoid.Health = 100
			char.Humanoid.WalkSpeed = 16

		end
	end
end)


Prompt: --Canvas Size

Response:
local firstLabel = pages.custom["AA Space"]
local finalLabel = pages.custom["AZ Space"]
pages.custom.CanvasSize = UDim2.new(0, 0, 0, (finalLabel.AbsolutePosition.Y - firstLabel.AbsolutePosition.Y) + finalLabel.AbsoluteSize.Y*1)

return module


Prompt: -- main loop

Response:
RunService.Stepped:connect(function(_, deltaTime)
	for i = #projectiles, 1, -1 do
		local projectile	= projectiles[i]
		local alive	= UpdateProjectile(projectile, deltaTime)

		if not alive then
			KillProjectile(projectile)
		elseif tick() - projectile.Start > projectile.Lifetime then
			KillProjectile(projectile)
		end
	end
end)


Prompt: -- Constants

Response:
local INFINITE_BOUNDS = Vector2.new(math.huge, math.huge)

function TextBox:getSize()

    -- Return size directly if fixed
    if not (self.props.Width or self.props.Height or self.props.Size == 'WRAP_CONTENT') then
        return self.props.Size
    end

    -- Get fixed sizes for individual axes
    local Width, Height
    if typeof(self.props.Width) == 'UDim' then
        Width = self.props.Width
    elseif typeof(self.props.Height) == 'UDim' then
        Height = self.props.Height
    end

    -- Get text size from height if autoscaled
    local TextSize = self.props.TextSize
    if self.props.TextScaled and self.AbsoluteSize then
        TextSize = self.AbsoluteSize.Y
    end

    -- Calculate content bounds
    local Bounds = TextService:GetTextSize(
        self.props.Text,
        TextSize,
        self.props.Font,
        INFINITE_BOUNDS
    )

    -- Set width and height based on content if requested
    if not Width and (self.props.Width == 'WRAP_CONTENT' or self.props.Size == 'WRAP_CONTENT') then
        Width = UDim.new(0, Bounds.X)
    end
    if not Height and (self.props.Height == 'WRAP_CONTENT' or self.props.Size == 'WRAP_CONTENT') then
        Height = UDim.new(0, Bounds.Y)
    end

    -- Return the calculated size
    return UDim2.new(
        Width or (self.props.Size and self.props.Size.X) or UDim.new(),
        Height or (self.props.Size and self.props.Size.Y) or UDim.new()
    )

end

function TextBox:updateSize()

    -- Calculate new size
    local Size = self:getSize()
    local TextSize = self.props.TextScaled and
        (self.AbsoluteSize and self.AbsoluteSize.Y) or
        self.props.TextSize

    -- Check if state is outdated
    if self.state.Size ~= Size or
        self.state.TextSize ~= TextSize then

        -- Update state
        self:setState {
            Size = Size,
            TextSize = TextSize
        }
    end
end

function TextBox:init()
    self.Updating = true
    self.state = {
        Size = UDim2.new(),
        TextSize = 0
    }
end

function TextBox:willUpdate(nextProps, nextState)
    self.Updating = true
end

function TextBox:render()
    local props = Support.Merge({}, self.props, {

        -- Override size
        Size = self.state.Size,
        TextSize = self.state.TextSize,
        TextScaled = false,

        -- Get initial size
        [Roact.Ref] = function (rbx)
            self.AbsoluteSize = rbx and
                rbx.AbsoluteSize or
                self.AbsoluteSize
        end,

        -- Track size changes
        [Roact.Change.AbsoluteSize] = function (rbx)
            self.AbsoluteSize = rbx.AbsoluteSize
            if not self.Updating then
                self:updateSize()
            end
        end

    })

    -- Parse hex colors
    if type(props.TextColor) == 'string' then
        local R, G, B = props.TextColor:lower():match('#?(..)(..)(..)')
        props.TextColor3 = Color3.fromRGB(tonumber(R, 16), tonumber(G, 16), tonumber(B, 16))
    end

    -- Separate children from props
    local children = Support.Merge({}, self.props[Roact.Children])

    -- Clear invalid props
    props.Width = nil
    props.Height = nil
    props.Bold = nil
    props.TextColor = nil
    props[Roact.Children] = nil

    -- Add a bold layer if specified
    if self.props.Bold then
        local BoldProps = Support.CloneTable(props)
        BoldProps.Size = UDim2.new(1, 0, 1, 0)
        BoldProps.Position = nil
        BoldProps.TextScaled = true
        BoldProps.AnchorPoint = nil
        children.Bold = new(TextBox, BoldProps)
    end

    -- Display component in wrapper
    return new('TextBox', props, children)

end

function TextBox:didMount()
    self.Updating = nil
    self:updateSize()
end

function TextBox:didUpdate(previousProps, previousState)
    self.Updating = nil
    self:updateSize()
end

return TextBox


Prompt:
--[=[
	Only takes distinct values from the observable stream.

	http://reactivex.io/documentation/operators/distinct.html

	```lua
	Rx.of(1, 1, 2, 3, 3, 1):Pipe({
		Rx.distinct();
	}):Subscribe(print) --> 1, 2, 3, 1
	```
	@return (source: Observable<T>) -> Observable<T>
]=]

Response:
function Rx.distinct()
	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			local last = UNSET_VALUE

			return source:Subscribe(
				function(value)
					-- TODO: Support tuples
					if last == value then
						return
					end

					last = value
					sub:Fire(last)
				end,
				sub:GetFailComplete()
			)
		end)
	end
end


Prompt: --This module is for any client FX related to the Lab's door

Response:
local DoorFX = {}

local tweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)

function DoorFX.OPEN(door)
	if not door then return end

	tweenService:Create(door.DoorA.Main, tweenInfo, {CFrame = door.DoorA.Goal.CFrame}):Play()
	tweenService:Create(door.DoorB.Main, tweenInfo, {CFrame = door.DoorB.Goal.CFrame}):Play()

	door.DoorA.Main.DoorOpenFADEOUT:Play()
	door.DoorB.Main.DoorOpenFADEOUT:Play()
end

function DoorFX.CLOSE(door)
	if not door then return end

	door.DoorA.Main.CFrame = door.DoorA.Home.CFrame
	door.DoorB.Main.CFrame = door.DoorB.Home.CFrame
end

return DoorFX


Prompt:
--[[
    API Reference:
    This module exposes the following APIs to allow for various configurations and custom interactions. Once the experience
    starts, a `SocialInteractions` ModuleScript will be parented to ReplicatedStorage. To access the following APIs, simply
    require the module as follows (on the client):
]]

Response:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))


Prompt: -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote

Response:
local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}

function configureAnimationSet(name, fileList)
	if (animTable[name] ~= nil) then
		for _, connection in pairs(animTable[name].connections) do
			connection:Disconnect()
		end
	end
	animTable[name] = {}
	animTable[name].count = 0
	animTable[name].totalWeight = 0
	animTable[name].connections = {}

	-- check for config values
	local config = script:FindFirstChild(name)
	if (config ~= nil) then


Prompt:
--[[Engine]]
--Torque Curve

Response:
Tune.Horsepower		= 150		--	[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


Prompt:
--[[
	@plugin UI

	Currently converts gui instances into PluginWidgets.
]]

Response:
local widget = {}

local plugin = nil

function widget.convertToDockWidget(screenGui, widgetId: string, widgetInfo: DockWidgetPluginGuiInfo, title: string)
	local widget = plugin:CreateDockWidgetPluginGui(widgetId, widgetInfo)
	widget.Title = title
	widget.ZIndexBehavior = screenGui.ZIndexBehavior

	screenGui = screenGui:GetChildren()

	for i = 1, #screenGui do
		screenGui[i]:Clone().Parent = widget
	end

	return widget
end

return function(Plugin: Plugin)
	plugin = Plugin
	return widget
end


Prompt: -- LOCAL

Response:
local tweenService = game:GetService("TweenService")
local debris = game:GetService("Debris")
local userInputService = game:GetService("UserInputService")
local httpService = game:GetService("HttpService") -- This is to generate GUIDs
local runService = game:GetService("RunService")
local textService = game:GetService("TextService")
local starterGui = game:GetService("StarterGui")
local guiService = game:GetService("GuiService")
local iconModule = script
local TopbarPlusReference = require(iconModule.TopbarPlusReference)
local referenceObject = TopbarPlusReference.getObject()
local leadPackage = referenceObject and referenceObject.Value
if leadPackage and leadPackage ~= iconModule then
	return require(leadPackage)
end
if not referenceObject then
    TopbarPlusReference.addToReplicatedStorage()
end
local Icon = {}
Icon.__index = Icon
local IconController = require(iconModule.IconController)
local Signal = require(iconModule.Signal)
local Maid = require(iconModule.Maid)
local TopbarPlusGui = require(iconModule.TopbarPlusGui)
local Themes = require(iconModule.Themes)
local activeItems = TopbarPlusGui.ActiveItems
local topbarContainer = TopbarPlusGui.TopbarContainer
local iconTemplate = topbarContainer["IconContainer"]
local DEFAULT_THEME = Themes.Default
local THUMB_OFFSET = 55
local DEFAULT_FORCED_GROUP_VALUES = {}


Prompt:
-- ScreenSpace -> WorldSpace. Taking a screen height that you want that object to be
-- and a world height that is the size of that object, and returning the position to
-- put that object at to satisfy those.

Response:
function ScreenSpace.ScreenToWorldByHeight(x, y, screenHeight, worldHeight)
	local aspectRatio = ScreenSpace.AspectRatio()
	local hfactor = math.tan(math.rad(Workspace.CurrentCamera.FieldOfView)/2)
	local wfactor = aspectRatio*hfactor
	local sx, sy = ScreenSpace.ViewSizeX(), ScreenSpace.ViewSizeY()
	--
	local depth = - (sy * worldHeight) / (screenHeight * 2 * hfactor)
	--
	local xf, yf = x/sx*2 - 1, y/sy*2 - 1
	local xpos = xf * -wfactor * depth
	local ypos = yf *  hfactor * depth
	--
	return Vector3.new(xpos, ypos, depth)
end


Prompt:
--- Removes raycast points using only vector3 values. Use the same vector3 table from SetPoints
-- @param object BasePart or Bone, the original instance you used for SetPoints
-- @param table of vector values that are in local space relative to the basePart

Response:
function Hitbox:RemovePoints(object: BasePart | Bone, vectorPoints: {[number]: Vector3})
	for i = #self.HitboxRaycastPoints, 1, -1 do
		local part = (self.HitboxRaycastPoints[i] :: Point).Instances[1]

		if part == object then
			local originalVector = (self.HitboxRaycastPoints[i] :: Point).Instances[2]

			for _: number, vector: Vector3 in ipairs(vectorPoints) do
				if vector == originalVector :: Vector3 then
					table.remove(self.HitboxRaycastPoints, i)
					break
				end
			end
		end
	end
end


Prompt:
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name

Response:
return function(data)
	local gui = script.Parent.Parent
	local playergui = service.PlayerGui
	local str = data.Message
	local time = data.Time or 15

	--client.UI.Make("HintHolder")
	local container = client.UI.Get("HintHolder",nil,true)
	if not container then
		local holder = service.New("ScreenGui")
		local hTable = client.UI.Register(holder)
		local frame = service.New("ScrollingFrame", holder)
		client.UI.Prepare(holder)
		hTable.Name = "HintHolder"
		frame.Name = "Frame"
		frame.BackgroundTransparency = 1
		frame.Size = UDim2.new(1, 0, 0,150)
		frame.CanvasSize = UDim2.new(0, 0, 0, 0)
		frame.ChildAdded:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		frame.ChildRemoved:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		container = hTable
		hTable:Ready()
	end
	container = container.Object.Frame

	--// First things first account for notif :)
	local notif = client.UI.Get("Notif")
	local topbar = client.UI.Get("TopBar")

	container.Position = UDim2.new(0,0,0,((notif and 30) or 0) + ((topbar and 40) or 0) - 35)

	local children = container:children()

	gui.Position = UDim2.new(0,0,0,-100)
	gui.Frame.msg.Text = str
	local bounds = gui.Frame.msg.TextBounds.X

	spawn(function()
		local sound = Instance.new("Sound",service.LocalContainer())
		sound.SoundId = "rbxassetid://489390072"
		wait(0.1)
		sound:Play()
		wait(0.8)
		sound:Destroy()
	end)

	local function moveGuis(m,ignore)
		m = m or 0
		local max = #container:children()
		for i,v in pairs(container:children()) do
			if v~=ignore then
				local y = (i+m)*28
				v.Position = UDim2.new(0,0,0,y)
				if i~=max then v.Size = UDim2.new(1,0,0,28) end
			end
		end
	end

	local lom = -1
	moveGuis(-1)
	gui.Parent = container
	if #container:children()>5 then lom = -2 end
	UDim2.new(0,0,0,(#container:children()+lom)*28)
	moveGuis(-1)
	--gui:TweenPosition(UDim2.new(0,0,0,(#container:children()+lom)*28),nil,nil,0.3,true,function() if gui and gui.Parent then moveGuis(-1) end end)

	if #container:children()>5 then
		local gui = container:children()[1]
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end

	wait(data.Time or 5)

	if gui and gui.Parent then
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end
end


Prompt:
----------------------------
--Patrol Script--
----------------------------

Response:
on = 0
Tool = script.Parent
welds = {}
sh = {}
arms = nil
torso = nil
f = nil
Holstered = false
wait()
local Tool = script.Parent
enabled = true


Response:
game.Workspace.rightpalette.l13.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l23.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l14.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l24.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)

wait(0.15)


Prompt:
--[=[
	@param ... any
	@return args: table
	Deserializes the arguments and returns the deserialized values.
]=]

Response:
function Ser.DeserializeArgsAndUnpack(...: any): ...any
	local args = Ser.DeserializeArgs(...)
	return table.unpack(args, 1, args.n)
end