CCCPaste

Ninja Legends Script

-- Ninja Legends Script by JayRBLX Script
-- Game: https://www.roblox.com/games/3956818381/Ninja-Legends

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

local Window = Rayfield:CreateWindow({
   Name = "Ninja Legends | JayRBLX Script",
   LoadingTitle = "JayRBLX Script Hub",
   LoadingSubtitle = "by JayRBLX",
   ConfigurationSaving = {
      Enabled = true,
      FolderName = nil,
      FileName = "NinjaLegendsJayRBLX"
   },
   Discord = {
      Enabled = false,
      Invite = "noinvitelink",
      RememberJoins = true
   },
   KeySystem = false,
   KeySettings = {
      Title = "Untitled",
      Subtitle = "Key System",
      Note = "No method of obtaining the key is provided",
      FileName = "Key",
      SaveKey = true,
      GrabKeyFromSite = false,
      Key = {"Hello"}
   }
})

-- Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

-- Variables
local InfiniteJumpEnabled = false
local HighJumpEnabled = false
local HighJumpPower = 150

-- Home Tab
local HomeTab = Window:CreateTab("🏠 Home", 4483362458)

local HomeSection = HomeTab:CreateSection("Player Actions")

local MessageInput = HomeTab:CreateInput({
   Name = "Message Text",
   PlaceholderText = "Enter message...",
   RemoveTextAfterFocusLost = false,
   Callback = function(Text)
      _G.MessageText = Text
   end,
})

HomeTab:CreateButton({
   Name = "Send Message to All Players",
   Callback = function()
      if _G.MessageText and _G.MessageText ~= "" then
         game:GetService("StarterGui"):SetCore("SendNotification", {
            Title = "Message Sent";
            Text = _G.MessageText;
            Duration = 5;
         })
      else
         Rayfield:Notify({
            Title = "Error",
            Content = "Please enter a message first!",
            Duration = 3,
            Image = 4483362458,
         })
      end
   end,
})

local WarningInput = HomeTab:CreateInput({
   Name = "Warning Text",
   PlaceholderText = "Enter warning...",
   RemoveTextAfterFocusLost = false,
   Callback = function(Text)
      _G.WarningText = Text
   end,
})

HomeTab:CreateButton({
   Name = "Send Warning to All Players",
   Callback = function()
      if _G.WarningText and _G.WarningText ~= "" then
         game:GetService("StarterGui"):SetCore("SendNotification", {
            Title = "⚠️ WARNING ⚠️";
            Text = _G.WarningText;
            Duration = 7;
         })
      else
         Rayfield:Notify({
            Title = "Error",
            Content = "Please enter a warning first!",
            Duration = 3,
            Image = 4483362458,
         })
      end
   end,
})

-- Main Tab
local MainTab = Window:CreateTab("⚔️ Main", 4483362458)

local MainSection = MainTab:CreateSection("Main Features")

MainTab:CreateButton({
   Name = "Unlock All Maps",
   Callback = function()
      -- Attempt to unlock all maps
      pcall(function()
         for _, v in pairs(ReplicatedStorage:GetDescendants()) do
            if v:IsA("RemoteEvent") or v:IsA("RemoteFunction") then
               if string.find(v.Name:lower(), "island") or string.find(v.Name:lower(), "map") then
                  v:FireServer()
               end
            end
         end
      end)
      Rayfield:Notify({
         Title = "Maps",
         Content = "Attempted to unlock all maps!",
         Duration = 3,
         Image = 4483362458,
      })
   end,
})

MainTab:CreateToggle({
   Name = "Infinite Jump",
   CurrentValue = false,
   Flag = "InfiniteJump",
   Callback = function(Value)
      InfiniteJumpEnabled = Value
   end,
})

MainTab:CreateToggle({
   Name = "High Jump",
   CurrentValue = false,
   Flag = "HighJump",
   Callback = function(Value)
      HighJumpEnabled = Value
      if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
         if Value then
            LocalPlayer.Character.Humanoid.JumpPower = HighJumpPower
         else
            LocalPlayer.Character.Humanoid.JumpPower = 50
         end
      end
   end,
})

MainTab:CreateSlider({
   Name = "High Jump Power",
   Range = {50, 500},
   Increment = 10,
   Suffix = "Power",
   CurrentValue = 150,
   Flag = "JumpPowerSlider",
   Callback = function(Value)
      HighJumpPower = Value
      if HighJumpEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
         LocalPlayer.Character.Humanoid.JumpPower = Value
      end
   end,
})

-- Coins Tab
local CoinsTab = Window:CreateTab("💰 Coins", 4483362458)

local CoinsSection = CoinsTab:CreateSection("Coin Features")

CoinsTab:CreateButton({
   Name = "Infinite Coins",
   Callback = function()
      pcall(function()
         local args = {[1] = 999999999}
         for _, v in pairs(ReplicatedStorage:GetDescendants()) do
            if v:IsA("RemoteEvent") and (string.find(v.Name:lower(), "coin") or string.find(v.Name:lower(), "currency")) then
               v:FireServer(unpack(args))
            end
         end
      end)
      Rayfield:Notify({
         Title = "Coins",
         Content = "Infinite Coins activated!",
         Duration = 3,
         Image = 4483362458,
      })
   end,
})

CoinsTab:CreateButton({
   Name = "Unlock All Masteries",
   Callback = function()
      pcall(function()
         for _, v in pairs(ReplicatedStorage:GetDescendants()) do
            if v:IsA("RemoteEvent") or v:IsA("RemoteFunction") then
               if string.find(v.Name:lower(), "mastery") or string.find(v.Name:lower(), "unlock") then
                  v:FireServer()
               end
            end
         end
      end)
      Rayfield:Notify({
         Title = "Masteries",
         Content = "Use this AFTER Infinite Coins! Attempted to unlock all masteries.",
         Duration = 4,
         Image = 4483362458,
      })
   end,
})

local CoinAmount = 0

local CoinInput = CoinsTab:CreateInput({
   Name = "Coin Amount",
   PlaceholderText = "Enter amount (e.g., 1000000)",
   RemoveTextAfterFocusLost = false,
   Callback = function(Text)
      CoinAmount = tonumber(Text) or 0
   end,
})

CoinsTab:CreateButton({
   Name = "Convert Typed Amount to Coins",
   Callback = function()
      if CoinAmount > 0 then
         pcall(function()
            local args = {[1] = CoinAmount}
            for _, v in pairs(ReplicatedStorage:GetDescendants()) do
               if v:IsA("RemoteEvent") and (string.find(v.Name:lower(), "coin") or string.find(v.Name:lower(), "currency")) then
                  v:FireServer(unpack(args))
               end
            end
         end)
         Rayfield:Notify({
            Title = "Coins Added",
            Content = "Added " .. tostring(CoinAmount) .. " coins!",
            Duration = 3,
            Image = 4483362458,
         })
      else
         Rayfield:Notify({
            Title = "Error",
            Content = "Please enter a valid coin amount!",
            Duration = 3,
            Image = 4483362458,
         })
      end
   end,
})

-- Infinite Jump Logic
local UserInputService = game:GetService("UserInputService")
UserInputService.JumpRequest:Connect(function()
   if InfiniteJumpEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
      LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
   end
end)

-- Character respawn handler
LocalPlayer.CharacterAdded:Connect(function(character)
   character:WaitForChild("Humanoid")
   if HighJumpEnabled then
      character.Humanoid.JumpPower = HighJumpPower
   end
end)

-- Final notification
Rayfield:Notify({
   Title = "JayRBLX Script Loaded",
   Content = "Ninja Legends script loaded successfully!",
   Duration = 5,
   Image = 4483362458,
})

print("Ninja Legends Script by JayRBLX loaded!")