Burkino

FPS HAX

Dec 20th, 2017
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local Player = game:GetService("Players").LocalPlayer;
  2.  
  3. local function CreateGuiComponent(
  4.     InstanceType,
  5.     Parent,
  6.     Size,
  7.     Position,
  8.     BackgroundColor,
  9.     TextColor,
  10.     Name,
  11.     MiscellaneousProperties
  12. )
  13.     local GuiComponent = Instance.new(InstanceType, Parent);
  14.     GuiComponent.Name = Name;
  15.     pcall(function()
  16.         GuiComponent.Size = Size;
  17.         GuiComponent.Position = Position;
  18.     end);
  19.     pcall(function()
  20.         GuiComponent.BackgroundColor3 = BackgroundColor;
  21.         GuiComponent.BorderColor3 = BackgroundColor;
  22.         GuiComponent.BorderSizePixel = 0;
  23.     end);
  24.     pcall(function()
  25.         GuiComponent.TextColor3 = TextColor;
  26.     end);
  27.     if MiscellaneousProperties then
  28.         for Key, Value in next, MiscellaneousProperties do
  29.             pcall(function()
  30.                 GuiComponent[Key] = Value;
  31.             end);
  32.         end;
  33.     end;
  34.     return GuiComponent;
  35. end;
  36.  
  37. local Menu = CreateGuiComponent(
  38.     "ScreenGui",
  39.     Player:WaitForChild("PlayerGui"),
  40.     nil,
  41.     nil,
  42.     nil,
  43.     nil,
  44.     "FPS Hax - Menu",
  45.     {
  46.         ResetOnSpawn = false;
  47.     }
  48. );
  49.  
  50. local Background = CreateGuiComponent(
  51.     "Frame",
  52.     Menu,
  53.     UDim2.new(0, 200, 0, 170),
  54.     UDim2.new(0, 5, 0, 5),
  55.     Color3.new(1, 1, 1),
  56.     nil,
  57.     "Background"
  58. );
  59.  
  60. local TopDividerBar = CreateGuiComponent(
  61.     "Frame",
  62.     Background,
  63.     UDim2.new(1, 0, 0, 2),
  64.     UDim2.new(0, 0, 0, 30),
  65.     Color3.new(0, 0, 0),
  66.     nil,
  67.     "TopDividerBar"
  68. );
  69.  
  70. local TopTextLabel = CreateGuiComponent(
  71.     "TextLabel",
  72.     Background,
  73.     UDim2.new(1, 0, 0, 30),
  74.     UDim2.new(0, 0, 0, 0),
  75.     Color3.new(1, 1, 1),
  76.     Color3.new(0, 0, 0),
  77.     "TopTextLabel",
  78.     {
  79.         Text = "FPS Hax v2.1";
  80.         Font = Enum.Font.SourceSansBold;
  81.         FontSize = Enum.FontSize.Size24;
  82.     }
  83. );
  84.  
  85. local BottomDividerBar = CreateGuiComponent(
  86.     "Frame",
  87.     Background,
  88.     UDim2.new(1, 0, 0, 2),
  89.     UDim2.new(0, 0, 1, -32),
  90.     Color3.new(0, 0, 0),
  91.     nil,
  92.     "BottomDividerBar"
  93. );
  94.  
  95. local BottomTextLabel = CreateGuiComponent(
  96.     "TextLabel",
  97.     Background,
  98.     UDim2.new(1, 0, 0, 30),
  99.     UDim2.new(0, 0, 1, -30),
  100.     Color3.new(1, 1, 1),
  101.     Color3.new(0, 0, 0),
  102.     "BottomTextLabel",
  103.     {
  104.         Text = "Created by MedievalBeast4@V3rmillion";
  105.         Font = Enum.Font.SourceSansBold;
  106.         TextSize = 13;
  107.     }
  108. );
  109.  
  110. local LeftDividerBar = CreateGuiComponent(
  111.     "Frame",
  112.     Background,
  113.     UDim2.new(0, 3, 1, -60),
  114.     UDim2.new(0, 13, 0, 30),
  115.     Color3.new(0, 0, 0),
  116.     nil,
  117.     "LeftDividerBar"
  118. );
  119.  
  120. local Features = {};
  121.  
  122. local function CycleStatus(Feature, CycleBackwards)
  123.     local NewStatusInteger;
  124.     if (not CycleBackwards) then
  125.         if (Feature[3] == #Feature[1]) then
  126.             NewStatusInteger = 1;
  127.         else
  128.             NewStatusInteger = (Feature[3] + 1);
  129.         end;
  130.     elseif CycleBackwards then
  131.         if (Feature[3] == #Feature[1]) then
  132.             NewStatusInteger = (#Feature[1] - 1);
  133.         else
  134.             NewStatusInteger = (Feature[3] - 1);
  135.             if (NewStatusInteger < 1) then
  136.                 NewStatusInteger = #Feature[1];
  137.             end;
  138.         end;
  139.     end;
  140.     Feature[2] = Feature[1][NewStatusInteger];
  141.     Feature[3] = NewStatusInteger;
  142. end;
  143.  
  144. local ChamsPointers = {};
  145. local OldTransparencies = {};
  146.  
  147. local function SetBrickTransparencies(Model, GetTransparencyCallback)
  148.     for Key, Value in next, Model:GetChildren() do
  149.         if Value:IsA("BasePart") then
  150.             if (OldTransparencies[Value] == nil) then
  151.                 OldTransparencies[Value] = Value.Transparency;
  152.             end;
  153.             Value.Transparency = GetTransparencyCallback(Value);
  154.         end;
  155.     end;
  156. end;
  157. local function DoChams(Character, Color, Transparency, ChamsType)
  158.     for Key2, Value2 in next, Character:GetChildren() do
  159.         if Value2:IsA("BasePart") then
  160.             local ChamHandle = Instance.new("BoxHandleAdornment", Value2);
  161.             ChamHandle.Name = "ChamHandle";
  162.             ChamHandle.Transparency = Transparency;
  163.             ChamHandle.AlwaysOnTop = true;
  164.             ChamHandle.ZIndex = 10;
  165.             ChamHandle.Adornee = Value2;
  166.             ChamHandle.Transparency = Transparency;
  167.             if (Features[ChamsType][3] == 1) then
  168.                 ChamHandle.Transparency = 1;
  169.                 SetBrickTransparencies(Character, function()
  170.                     return (0);
  171.                 end);
  172.                 if (Value2.Name == "Head") then
  173.                     Value2:FindFirstChildOfClass("Decal").Transparency = 0;
  174.                 end;
  175.             else
  176.                 if (Value2.Name == "Head") then
  177.                     Value2:FindFirstChildOfClass("Decal").Transparency = 1;
  178.                 end;
  179.             end;
  180.             ChamHandle.Size = (Vector3.new(0.05, 0.05, 0.05) + Value2.Size);
  181.             if (Value2.Name == "Head") then
  182.                 ChamHandle.Size = Vector3.new(1.25, 1.3, 1.25);
  183.             end;
  184.             ChamHandle.Visible = true;
  185.             ChamHandle.Color3 = Color;
  186.             ChamsPointers[#ChamsPointers + 1] = ChamHandle;
  187.         end;
  188.     end;
  189. end;
  190. local function RenderChams()
  191.     for Key, Value in next, ChamsPointers do
  192.         Value:Destroy();
  193.     end;
  194.     local function GetChamsColor(OtherPlayer, ChamsType)
  195.         local Colors = {
  196.             ["Off"] = Color3.new(0, 0, 0);
  197.             ["White"] = Color3.new(1, 1, 1);
  198.             ["Black"] = Color3.new(0, 0, 0);
  199.             ["Red"] = Color3.new(1, 0, 0);
  200.             ["Green"] = Color3.new(0, 1, 0);
  201.             ["Blue"] = Color3.new(0, 0, 1);
  202.             ["Purple"] = Color3.new(0.65, 0, 0.65);
  203.             ["Yellow"] = Color3.new(1, 1, 0);
  204.             ["Grey"] = Color3.new(0.8, 0.8, 0.8);
  205.         };
  206.         if (ChamsType == "EC") then
  207.             return Colors[Features["Enemy Chams"][1][Features["Enemy Chams"][3]]];
  208.         elseif (ChamsType == "TC") then
  209.             return Colors[Features["Team Chams"][1][Features["Team Chams"][3]]];
  210.         end;
  211.     end;
  212.     local function GetChamsTransparency(ChamsType)
  213.         local Transparencies = {
  214.             ["Off"] = 0;
  215.             ["10%"] = 0.1;
  216.             ["20%"] = 0.2;
  217.             ["30%"] = 0.3;
  218.             ["40%"] = 0.4;
  219.             ["50%"] = 0.5;
  220.             ["60%"] = 0.6;
  221.             ["70%"] = 0.7;
  222.             ["80%"] = 0.8;
  223.             ["90%"] = 0.9;
  224.         };
  225.         local ChamsOff = (
  226.             (
  227.                 (
  228.                     Features[ChamsType][2][Features[ChamsType][3]] == "Off")
  229.                     and true
  230.                 ) or nil
  231.             );
  232.         if ChamsOff then
  233.             return (1);
  234.         else
  235.             return Transparencies[
  236.                 Features["Chams Transparency"][1][Features["Chams Transparency"][3]]
  237.             ];
  238.         end;
  239.     end;
  240.     for Key, Value in next, game:GetService("Players"):GetPlayers() do
  241.         local Character = Value.Character;
  242.         if (Character and (Value ~= Player)) then
  243.             if (
  244.                 (Value.TeamColor == Player.TeamColor) and
  245.                 (Features["Team Chams"][2][Features["Team Chams"][3]] ~= "Off")
  246.             ) then
  247.                 if (Features["Team Chams"][2][Features["Team Chams"][3]] ~= "Off") then
  248.                     DoChams(
  249.                         Character,
  250.                         GetChamsColor(Value, "TC"),
  251.                         GetChamsTransparency("Team Chams"),
  252.                         "Team Chams"
  253.                     );
  254.                     SetBrickTransparencies(Character, function()
  255.                         if (Features["Team Chams"][3] == 1) then
  256.                             return (0);
  257.                         end;
  258.                         return (1);
  259.                     end);
  260.                 else
  261.                     SetBrickTransparencies(Character, function(Brick)
  262.                         return OldTransparencies[Brick]
  263.                     end);
  264.                 end;
  265.             elseif (
  266.                 (Value.TeamColor ~= Player.TeamColor) and
  267.                 (Features["Enemy Chams"][2][Features["Enemy Chams"][3]] ~= "Off")
  268.             ) then
  269.                 if (
  270.                     Features["Enemy Chams"][2][Features["Enemy Chams"][3]] ~= "Off"
  271.                 ) then
  272.                     DoChams(
  273.                         Character,
  274.                         GetChamsColor(Value, "EC"),
  275.                         GetChamsTransparency("Enemy Chams"),
  276.                         "Enemy Chams"
  277.                     );
  278.                     SetBrickTransparencies(Character, function()
  279.                         return (1);
  280.                     end);
  281.                 else
  282.                     SetBrickTransparencies(Character, function(Brick)
  283.                         return OldTransparencies[Brick]
  284.                     end);
  285.                 end;
  286.             end;
  287.         end;
  288.     end;
  289. end;
  290.  
  291. local Rendering;
  292. local DefaultAmbience = {
  293.     Color3.new(0.7, 0.7, 0.7);
  294.     Color3.new(0.7, 0.7, 0.7);
  295. };
  296.  
  297. local DefaultFog;
  298. local DefaultBrightness;
  299.  
  300. local function AttemptSaveDefaultLightingSettings()
  301.     if (DefaultAmbience[1] == Color3.new(0.7, 0.7, 0.7)) then
  302.         DefaultFog = game:GetService("Lighting").FogEnd;
  303.         DefaultBrightness = game:GetService("Lighting").Brightness;
  304.         DefaultAmbience = {
  305.             game:GetService("Lighting").Ambient;
  306.             game:GetService("Lighting").OutdoorAmbient;
  307.         };
  308.     end;
  309. end;
  310.  
  311. local function ChangeFullbrightCallback(Property, OptionalSetting)
  312.     local CurrentFBSetting = (
  313.         Features["Fullbright"][1][Features["Fullbright"][3]]
  314.     );
  315.     if (CurrentFBSetting == "Half") then
  316.         if (Property == "Ambience") then
  317.             return Color3.new(0.55, 0.55, 0.55);
  318.         elseif (Property == "Brightness") then
  319.             return (1.5);
  320.         elseif (Property == "Fog") then
  321.             return (250);
  322.         end;
  323.     elseif (CurrentFBSetting == "Maximum") then
  324.         if (Property == "Ambience") then
  325.             return Color3.new(1, 1, 1);
  326.         elseif (Property == "Brightness") then
  327.             return (10);
  328.         elseif (Property == "Fog") then
  329.             return (1000000);
  330.         end;
  331.     else
  332.         if (Property == "Ambience") then
  333.             return DefaultAmbience[OptionalSetting];
  334.         elseif (Property == "Brightness") then
  335.             return DefaultBrightness;
  336.         elseif (Property == "Fog") then
  337.             return DefaultFog;
  338.         end;
  339.     end;
  340.     local Lighting = game:GetService("Lighting");
  341.     Lighting.Ambient = ChangeFullbrightCallback("Ambience", 1);
  342.     Lighting.OutdoorAmbient = ChangeFullbrightCallback("Ambience", 2);
  343.     Lighting.Brightness = ChangeFullbrightCallback("Brightness");
  344.     Lighting.FogStart = ChangeFullbrightCallback("Fog");
  345.     Lighting.FogEnd = ChangeFullbrightCallback("Fog");
  346. end;
  347.  
  348. function RenderFeatures()
  349.     repeat
  350.         wait();
  351.     until (not Rendering);
  352.     Rendering = true;
  353.     local function GetFeaturePosition(FeatureName)
  354.         local Pointers = {
  355.             ["Menu hot-key"] = 1;
  356.             ["Team Chams"] = 2;
  357.             ["Enemy Chams"] = 3;
  358.             ["Chams Transparency"] = 4;
  359.             ["Fullbright"] = 5;
  360.         };
  361.         local IterationCount = (Pointers[FeatureName] - 1);
  362.         return ((IterationCount * 20) + 40);
  363.     end;
  364.     for Key, Value in next, Background:GetChildren() do
  365.         if Value.Name:find("_F") then
  366.             Value:Destroy();
  367.         end;
  368.     end;
  369.     local IterationCount = 0;
  370.     for Key, Value in next, Features do
  371.         local Feature = CreateGuiComponent(
  372.             "Frame",
  373.             Background,
  374.             UDim2.new(1, 0, 25, 0),
  375.             UDim2.new(0, 0, 0, GetFeaturePosition(Key)),
  376.             Color3.new(0, 0, 0),
  377.             nil,
  378.             (Key.."_F"),
  379.             {
  380.                 BackgroundTransparency = 1;
  381.             }
  382.         );
  383.         local FeatureName = CreateGuiComponent(
  384.             "TextLabel",
  385.             Feature,
  386.             UDim2.new(0.9, 0, 0, 25),
  387.             UDim2.new(0.1, 0, 0, -3),
  388.             Color3.new(0, 0, 0),
  389.             Color3.new(0, 0, 0),
  390.             "FeatureName",
  391.             {
  392.                 BackgroundTransparency = 1;
  393.                 Text = Key;
  394.                 Font = Enum.Font.SourceSansBold;
  395.                 TextSize = 15;
  396.                 TextXAlignment = Enum.TextXAlignment.Left;
  397.                 TextYAlignment = Enum.TextYAlignment.Top;
  398.             }
  399.         );
  400.         local Text;
  401.         if (Value[2] ~= "Off") then
  402.             Text = ("["..Value[2].."]".." ");
  403.         else
  404.             Text = "Off ";
  405.         end;
  406.         local FeatureButton = CreateGuiComponent(
  407.             "TextButton",
  408.             Feature,
  409.             UDim2.new(0.9, 0, 0, 25),
  410.             UDim2.new(0.1, 0, 0, -3),
  411.             Color3.new(0, 0, 0),
  412.             Color3.new(0, 0, 0),
  413.             "FeatureStatus",
  414.             {
  415.                 BackgroundTransparency = 1;
  416.                 Text = Text;
  417.                 Font = Enum.Font.SourceSansBold;
  418.                 TextSize = 15;
  419.                 TextXAlignment = Enum.TextXAlignment.Right;
  420.                 TextYAlignment = Enum.TextYAlignment.Top;
  421.                 AutoButtonColor = false;
  422.             }
  423.         );
  424.         FeatureButton.MouseButton1Click:Connect(function()
  425.             CycleStatus(Value);
  426.             RenderFeatures();
  427.             if Key:find("Chams") then
  428.                 RenderChams();
  429.             elseif (Key == "Fullbright") then
  430.                 AttemptSaveDefaultLightingSettings();
  431.                 ChangeFullbrightCallback();
  432.             end;
  433.         end);
  434.         FeatureButton.MouseButton2Click:Connect(function()
  435.             CycleStatus(Value, true);
  436.             RenderFeatures();
  437.             if Key:find("Chams") then
  438.                 RenderChams();
  439.             elseif (Key == "Fullbright") then
  440.                 AttemptSaveDefaultLightingSettings();
  441.                 ChangeFullbrightCallback();
  442.             end;
  443.         end);
  444.         local StatusSymbol = CreateGuiComponent(
  445.             "Frame",
  446.             Feature,
  447.             UDim2.new(0, 7, 0, 7),
  448.             UDim2.new(0, 2, 0, 3),
  449.             Color3.new(
  450.             (((Value[2] == "Off") and 1) or 0),
  451.             (((Value[2] ~= "Off") and 1) or 0),
  452.             0
  453.             ),
  454.             nil,
  455.             "StatusSymbol"
  456.         );
  457.         IterationCount = (IterationCount + 1);
  458.     end;
  459.     Rendering = false;
  460. end;
  461.  
  462. local function CreateFeature(Name, Statuses)
  463.     Features[Name] = {
  464.         Statuses,
  465.         Statuses[1],
  466.         1
  467.     };
  468.     RenderFeatures();
  469. end;
  470.  
  471. CreateFeature(
  472.     "Menu hot-key",
  473.     {
  474.         "Delete";
  475.         "Insert";
  476.     }
  477. );
  478.  
  479. CreateFeature(
  480.     "Team Chams",
  481.     {
  482.         "Off";
  483.         "White";
  484.         "Black";
  485.         "Red";
  486.         "Green";
  487.         "Blue";
  488.         "Purple";
  489.         "Yellow";
  490.         "Grey";
  491.     }
  492. );
  493.  
  494. CreateFeature(
  495.     "Enemy Chams",
  496.     {
  497.         "Off";
  498.         "White";
  499.         "Black";
  500.         "Red";
  501.         "Green";
  502.         "Blue";
  503.         "Purple";
  504.         "Yellow";
  505.         "Grey";
  506.     }
  507. );
  508.  
  509. CreateFeature(
  510.     "Chams Transparency",
  511.     {
  512.         "Off";
  513.         "10%";
  514.         "20%";
  515.         "30%";
  516.         "40%";
  517.         "50%";
  518.         "60%";
  519.         "70%";
  520.         "80%";
  521.         "90%";
  522.     }
  523. );
  524.  
  525. CreateFeature(
  526.     "Fullbright",
  527.     {
  528.         "Off";
  529.         "Half";
  530.         "Maximum";
  531.     }
  532. );
  533.  
  534. game:GetService("UserInputService").InputBegan:Connect(function(InputObject, GameProcessedEvent)
  535.     if (
  536.         (not GameProcessedEvent) and
  537.         (InputObject.UserInputType == Enum.UserInputType.Keyboard)
  538.     ) then
  539.         local MenuHotkeyFeature = Features["Menu hot-key"];
  540.         if (InputObject.KeyCode == Enum.KeyCode.P) then
  541.             RenderChams();
  542.             AttemptSaveDefaultLightingSettings();
  543.             ChangeFullbrightCallback();
  544.             RenderFeatures();
  545.         elseif (InputObject.KeyCode == Enum.KeyCode[MenuHotkeyFeature[1][MenuHotkeyFeature[3]]]) then
  546.             Background.Visible = (not Background.Visible);
  547.             local PreviousParent = Background.Parent;
  548.             Background.Parent = nil;
  549.             Background.Parent = PreviousParent;
  550.         end;
  551.     end;
  552. end);
  553.  
  554. while true do
  555.     RenderChams();
  556.     AttemptSaveDefaultLightingSettings();
  557.     ChangeFullbrightCallback();
  558.     RenderFeatures();
  559.     wait(15);
  560. end;
Add Comment
Please, Sign In to add comment