Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("스크립트 실행 중...")
- local Luna = loadstring(game:HttpGet("https://raw.githubusercontent.com/Nebula-Softworks/Luna-Interface-Suite/main/source.lua"))()
- local Window = Luna:CreateWindow({
- Name = "xdayoungx Hub | RPG",
- LoadingTitle = "xdayoungx Hub",
- LoadingSubtitle = "by xdayoungx",
- ConfigurationSaving = {
- Enabled = true,
- FolderName = "xdayoungxHub",
- FileName = "RPGConfig"
- },
- Discord = {
- Enabled = false,
- Invite = "",
- RememberJoins = false
- },
- KeySystem = false
- })
- local Players = game:GetService("Players")
- local LocalPlayer = Players.LocalPlayer
- local RunService = game:GetService("RunService")
- game:GetService("UserInputService")
- game:GetService("TweenService")
- local VirtualUser = game:GetService("VirtualUser")
- game:GetService("VirtualInputManager")
- game:GetService("ReplicatedStorage")
- game:GetService("Workspace")
- local Lighting = game:GetService("Lighting")
- game:GetService("StarterGui")
- game:GetService("HttpService")
- game:GetService("TeleportService")
- game:GetService("MarketplaceService")
- game:GetService("BadgeService")
- game:GetService("Teams")
- game:GetService("Stats")
- game:GetService("SoundService")
- game:GetService("ContextActionService")
- game:GetService("CollectionService")
- game:GetService("PathfindingService")
- game:GetService("Debris")
- game:GetService("PhysicsService")
- game:GetService("InsertService")
- game:GetService("GuiService")
- game:GetService("HapticService")
- game:GetService("VRService")
- game:GetService("DataStoreService")
- game:GetService("MessagingService")
- game:GetService("PolicyService")
- Window:CreateHomeTab({
- SupportedExecutors = {
- "Synapse X", "Krnl", "Fluxus", "Script-Ware",
- "Electron", "Solara", "Wave", "Delta", "Xeno"
- },
- DiscordInvite = nil,
- Icon = 1
- })
- local MainTab = Window:CreateTab({
- Name = "메인",
- Icon = "shop",
- ImageSource = "Material",
- ShowTitle = true
- })
- local SettingsTab = Window:CreateTab({
- Name = "설정",
- Icon = "settings",
- ImageSource = "Material",
- ShowTitle = true
- })
- local AutoFarmConfig = {
- Enabled = false,
- Distance = 4,
- HeightOffset = 5,
- TargetMob = nil,
- CurrentTarget = nil
- }
- local Mobs = workspace.Mobs
- local AttackDirection = "Front"
- local DirectionAngles = {
- Front = 0,
- Back = 180,
- Up = -90,
- Down = 90
- }
- local function getCharacter()
- return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
- end
- local function rotateCharacter()
- local character = getCharacter()
- if character then
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- if humanoidRootPart then
- local angle = DirectionAngles[AttackDirection] or 0
- humanoidRootPart.CFrame = CFrame.new(humanoidRootPart.Position) * CFrame.Angles(math.rad(angle), 0, 0)
- end
- else
- return
- end
- end
- local function getMobList()
- local mobsFolder = Mobs
- local iterator, state, index = ipairs(mobsFolder:GetChildren())
- local processedMobs = {}
- local mobDisplayList = {}
- local mobNameMap = {}
- while true do
- local mob
- index, mob = iterator(state, index)
- if index == nil then
- break
- end
- if not processedMobs[mob.Name] then
- local mobHead = mob:FindFirstChild("Head")
- if mobHead and mobHead:FindFirstChild("MobHead") and (mobHead.MobHead:FindFirstChild("Frame") and mobHead.MobHead.Frame:FindFirstChild("HpText")) then
- local hpText = mobHead.MobHead.Frame.HpText.Text or "?"
- local displayName = mob.Name .. " [" .. hpText .. "]"
- table.insert(mobDisplayList, displayName)
- mobNameMap[displayName] = mob.Name
- processedMobs[mob.Name] = true
- end
- end
- end
- table.sort(mobDisplayList)
- return mobDisplayList, mobNameMap
- end
- local MobList, MobMap = getMobList()
- local function isMobDead(mob)
- if not (mob and mob.Parent) then
- return true
- end
- if mob:FindFirstChild("HumanoidRootPart") then
- return false
- end
- local iterator, state, index = ipairs(mob:GetChildren())
- while true do
- local child
- index, child = iterator(state, index)
- if index == nil then
- break
- end
- if child:IsA("BasePart") and child.Transparency >= 0.01 then
- return true
- end
- end
- return false
- end
- local function findTargetMob()
- if not AutoFarmConfig.TargetMob then
- return nil
- end
- local mobsFolder = Mobs
- local iterator, state, index = ipairs(mobsFolder:GetChildren())
- while true do
- local mob
- index, mob = iterator(state, index)
- if index == nil then
- break
- end
- if mob.Name == AutoFarmConfig.TargetMob and not isMobDead(mob) then
- return mob
- end
- end
- return nil
- end
- local function attack()
- VirtualUser:Button1Down(Vector2.new(500, 500))
- task.wait(0.03)
- VirtualUser:Button1Up(Vector2.new(500, 500))
- end
- task.spawn(function()
- while task.wait(0.05) do
- local shouldBreak = false
- local function setBreakFlag()
- shouldBreak = true
- end
- local character = getCharacter()
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- if humanoid and humanoid.Health <= 0 then
- AutoFarmConfig.CurrentTarget = nil
- elseif AutoFarmConfig.Enabled then
- if AutoFarmConfig.CurrentTarget and isMobDead(AutoFarmConfig.CurrentTarget) then
- AutoFarmConfig.CurrentTarget = nil
- end
- if not AutoFarmConfig.CurrentTarget then
- AutoFarmConfig.CurrentTarget = findTargetMob()
- end
- local currentTarget = AutoFarmConfig.CurrentTarget
- if not currentTarget then
- setBreakFlag()
- end
- local targetRootPart = currentTarget:FindFirstChild("HumanoidRootPart") or currentTarget:FindFirstChild("HRP")
- if not targetRootPart then
- AutoFarmConfig.CurrentTarget = nil
- setBreakFlag()
- end
- if not humanoidRootPart then
- setBreakFlag()
- end
- local heightOffset = 0
- if AttackDirection ~= "Up" then
- if AttackDirection == "Down" then
- heightOffset = -AutoFarmConfig.HeightOffset
- end
- else
- heightOffset = AutoFarmConfig.HeightOffset
- end
- humanoidRootPart.CFrame = CFrame.new(targetRootPart.Position.X, targetRootPart.Position.Y + heightOffset, targetRootPart.Position.Z) * CFrame.new(0, 0, AutoFarmConfig.Distance)
- if AttackDirection == "Up" or AttackDirection == "Down" then
- humanoid.PlatformStand = true
- else
- humanoid.PlatformStand = false
- end
- humanoidRootPart.Velocity = Vector3.new(0, 0, 0)
- humanoidRootPart.RotVelocity = Vector3.new(0, 0, 0)
- rotateCharacter()
- task.wait()
- rotateCharacter()
- attack()
- elseif humanoid then
- humanoid.PlatformStand = false
- end
- if shouldBreak then
- break
- end
- end
- end)
- local CharacterSettings = {
- WalkSpeed = 16,
- JumpPower = 50,
- AntiAFKEnabled = false,
- LoopEnabled = true,
- ESPEnabled = false,
- FullBrightEnabled = false
- }
- local Connections = {
- CharacterAdded = nil,
- AntiAFK = nil,
- Loop = nil,
- ESP = {}
- }
- local function getHumanoid()
- local character = LocalPlayer.Character
- if character then
- character = character:FindFirstChildOfClass("Humanoid")
- end
- return character
- end
- local function applyCharacterSettings()
- local humanoid = getHumanoid()
- if humanoid then
- humanoid.UseJumpPower = true
- humanoid.WalkSpeed = CharacterSettings.WalkSpeed
- humanoid.JumpPower = CharacterSettings.JumpPower
- end
- end
- if Connections.CharacterAdded then
- Connections.CharacterAdded:Disconnect()
- end
- Connections.CharacterAdded = LocalPlayer.CharacterAdded:Connect(function()
- task.wait(0.3)
- applyCharacterSettings()
- end)
- local function enableAntiAFK()
- if not Connections.AntiAFK then
- Connections.AntiAFK = LocalPlayer.Idled:Connect(function()
- VirtualUser:Button2Down(Vector2.new(0, 0), workspace.CurrentCamera and workspace.CurrentCamera.CFrame or CFrame.new())
- task.wait(1)
- VirtualUser:Button2Up(Vector2.new(0, 0), workspace.CurrentCamera and workspace.CurrentCamera.CFrame or CFrame.new())
- end)
- end
- end
- local function disableAntiAFK()
- if Connections.AntiAFK then
- Connections.AntiAFK:Disconnect()
- Connections.AntiAFK = nil
- end
- end
- local function setupESP(player)
- local function createESP(character)
- if CharacterSettings.ESPEnabled then
- if character then
- local iterator, state, index = ipairs(character:GetChildren())
- while true do
- local child
- index, child = iterator(state, index)
- if index == nil then
- break
- end
- if child:IsA("Highlight") and child.Name == "xdayoungxESP" then
- child:Destroy()
- end
- end
- local highlight = Instance.new("Highlight")
- highlight.Name = "xdayoungxESP"
- highlight.FillColor = Color3.fromRGB(255, 0, 0)
- highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
- highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- highlight.Adornee = character
- highlight.Parent = character
- Connections.ESP[player] = highlight
- end
- else
- return
- end
- end
- if player.Character then
- createESP(player.Character)
- end
- player.CharacterAdded:Connect(function(newCharacter)
- task.wait(0.5)
- createESP(newCharacter)
- end)
- end
- local function enableESP()
- local playersService = Players
- local iterator, state, key = pairs(playersService:GetPlayers())
- while true do
- local player
- key, player = iterator(state, key)
- if key == nil then
- break
- end
- if player ~= LocalPlayer then
- setupESP(player)
- end
- end
- Connections.PlayerAdded = Players.PlayerAdded:Connect(function(newPlayer)
- if newPlayer ~= LocalPlayer then
- setupESP(newPlayer)
- end
- end)
- Connections.PlayerRemoving = Players.PlayerRemoving:Connect(function(removingPlayer)
- if Connections.ESP[removingPlayer] then
- Connections.ESP[removingPlayer]:Destroy()
- Connections.ESP[removingPlayer] = nil
- end
- end)
- end
- local function disableESP()
- local iterator, state, key = pairs(Connections.ESP)
- while true do
- local espHighlight
- key, espHighlight = iterator(state, key)
- if key == nil then
- break
- end
- espHighlight:Destroy()
- end
- Connections.ESP = {}
- if Connections.PlayerAdded then
- Connections.PlayerAdded:Disconnect()
- end
- if Connections.PlayerRemoving then
- Connections.PlayerRemoving:Disconnect()
- end
- end
- local OriginalLightingSettings = {
- Brightness = Lighting.Brightness,
- ClockTime = Lighting.ClockTime,
- FogEnd = Lighting.FogEnd,
- GlobalShadows = Lighting.GlobalShadows
- }
- local FullBrightConnection = nil
- local function enableFullBright()
- if not FullBrightConnection then
- FullBrightConnection = RunService.RenderStepped:Connect(function()
- Lighting.Brightness = 2
- Lighting.ClockTime = 12
- Lighting.FogEnd = 1000000
- Lighting.GlobalShadows = false
- end)
- end
- end
- local function disableFullBright()
- if FullBrightConnection then
- FullBrightConnection:Disconnect()
- FullBrightConnection = nil
- end
- local iterator, state, key = pairs(OriginalLightingSettings)
- while true do
- local value
- key, value = iterator(state, key)
- if key == nil then
- break
- end
- Lighting[key] = value
- end
- end
- RunService.Stepped:Connect(function()
- local humanoid = CharacterSettings.LoopEnabled and getHumanoid()
- if humanoid then
- if humanoid.WalkSpeed ~= CharacterSettings.WalkSpeed then
- humanoid.WalkSpeed = CharacterSettings.WalkSpeed
- end
- if humanoid.UseJumpPower and humanoid.JumpPower ~= CharacterSettings.JumpPower then
- humanoid.JumpPower = CharacterSettings.JumpPower
- end
- end
- end)
- local AutoFarmSection = MainTab:CreateSection("자동 사냥")
- local AutoFarmToggle = MainTab:CreateToggle({
- Name = "자동 사냥",
- CurrentValue = false,
- Flag = "AutoFarmToggle",
- Callback = function(Value)
- AutoFarmConfig.Enabled = Value
- AutoFarmConfig.CurrentTarget = nil
- local humanoid = not Value and getCharacter():FindFirstChildOfClass("Humanoid")
- if humanoid then
- humanoid.PlatformStand = false
- end
- end,
- })
- local MobDropdown = MainTab:CreateDropdown({
- Name = "적 선택",
- Options = MobList,
- CurrentOption = {},
- MultipleOptions = false,
- Flag = "MobDropdown",
- Callback = function(Option)
- if type(Option) == "table" and #Option > 0 then
- AutoFarmConfig.TargetMob = MobMap[Option[1]]
- elseif type(Option) == "string" then
- AutoFarmConfig.TargetMob = MobMap[Option]
- else
- AutoFarmConfig.TargetMob = nil
- end
- AutoFarmConfig.CurrentTarget = nil
- end,
- })
- MainTab:CreateButton({
- Name = "몹 목록 새로고침",
- Callback = function()
- local newMobList, newMobMap = getMobList()
- MobMap = newMobMap
- MobList = newMobList
- if MobDropdown then
- local dropdownInstance = MobDropdown.Instance or (MobDropdown and MobDropdown._Instance)
- if dropdownInstance then
- dropdownInstance:Destroy()
- elseif MobDropdown.Destroy then
- MobDropdown:Destroy()
- end
- end
- -- 드롭다운 재생성
- MobDropdown = MainTab:CreateDropdown({
- Name = "적 선택",
- Options = MobList,
- CurrentOption = {},
- MultipleOptions = false,
- Flag = "MobDropdown",
- Callback = function(Option)
- if type(Option) == "table" and #Option > 0 then
- AutoFarmConfig.TargetMob = MobMap[Option[1]]
- elseif type(Option) == "string" then
- AutoFarmConfig.TargetMob = MobMap[Option]
- else
- AutoFarmConfig.TargetMob = nil
- end
- AutoFarmConfig.CurrentTarget = nil
- end,
- })
- end,
- })
- local DistanceSlider = MainTab:CreateSlider({
- Name = "거리 (Z축)",
- Range = {1, 20},
- Increment = 1,
- CurrentValue = 4,
- Flag = "DistanceSlider",
- Callback = function(Value)
- AutoFarmConfig.Distance = Value
- end,
- })
- local HeightOffsetSlider = MainTab:CreateSlider({
- Name = "수직 오프셋 (위/아래)",
- Range = {1, 20},
- Increment = 1,
- CurrentValue = 5,
- Flag = "HeightOffsetSlider",
- Callback = function(Value)
- AutoFarmConfig.HeightOffset = Value
- end,
- })
- local AttackDirectionDropdown = MainTab:CreateDropdown({
- Name = "공격 방향",
- Options = {"Front", "Back", "Up", "Down"},
- CurrentOption = {"Front"},
- MultipleOptions = false,
- Flag = "AttackDirectionDropdown",
- Callback = function(Option)
- if type(Option) == "table" then
- AttackDirection = Option[1]
- else
- AttackDirection = Option
- end
- end,
- })
- local CharacterSection = SettingsTab:CreateSection("캐릭터")
- local WalkSpeedSlider = SettingsTab:CreateSlider({
- Name = "이동 속도",
- Range = {10, 200},
- Increment = 1,
- CurrentValue = 16,
- Flag = "WalkSpeedSlider",
- Callback = function(Value)
- CharacterSettings.WalkSpeed = Value
- applyCharacterSettings()
- end,
- })
- local JumpPowerSlider = SettingsTab:CreateSlider({
- Name = "점프력",
- Range = {20, 300},
- Increment = 1,
- CurrentValue = 50,
- Flag = "JumpPowerSlider",
- Callback = function(Value)
- CharacterSettings.JumpPower = Value
- applyCharacterSettings()
- end,
- })
- local AntiAFKToggle = SettingsTab:CreateToggle({
- Name = "AFK 방지",
- CurrentValue = false,
- Flag = "AntiAFKToggle",
- Callback = function(Value)
- CharacterSettings.AntiAFKEnabled = Value
- if Value then
- enableAntiAFK()
- else
- disableAntiAFK()
- end
- end,
- })
- local LoopToggle = SettingsTab:CreateToggle({
- Name = "이동 속도 강제 적용",
- CurrentValue = true,
- Flag = "LoopToggle",
- Callback = function(Value)
- CharacterSettings.LoopEnabled = Value
- end,
- })
- local ESPToggle = SettingsTab:CreateToggle({
- Name = "플레이어 ESP",
- CurrentValue = false,
- Flag = "ESPToggle",
- Callback = function(Value)
- CharacterSettings.ESPEnabled = Value
- if Value then
- enableESP()
- else
- disableESP()
- end
- end,
- })
- local FullBrightToggle = SettingsTab:CreateToggle({
- Name = "밝기 최대",
- CurrentValue = false,
- Flag = "FullBrightToggle",
- Callback = function(Value)
- CharacterSettings.FullBrightEnabled = Value
- if Value then
- enableFullBright()
- else
- disableFullBright()
- end
- end,
- })
- local InfoSection = SettingsTab:CreateSection("정보")
- SettingsTab:CreateParagraph({
- Title = "xdayoungx Hub | RPG",
- Content = "RPG 게임용 자동 사냥 스크립트입니다.\n\n기능:\n- 자동 사냥\n- 이동 속도/점프력 조절\n- AFK 방지\n- 플레이어 ESP\n- 밝기 최대\n\n제작자: xdayoungx"
- })
- local ControlsSection = SettingsTab:CreateSection("컨트롤")
- SettingsTab:CreateKeybind({
- Name = "UI 토글",
- CurrentKeybind = "RightShift",
- HoldToInteract = false,
- Flag = "UIKeybind",
- Callback = function(Keybind)
- end,
- })
- SettingsTab:CreateButton({
- Name = "GUI 제거",
- Callback = function()
- Luna:Destroy()
- end,
- })
- applyCharacterSettings()
- Luna:Notification({
- Title = "xdayoungx Hub 로드 완료",
- Content = "스크립트가 성공적으로 로드되었습니다!",
- Icon = "check_circle",
- ImageSource = "Material"
- })
Advertisement
Add Comment
Please, Sign In to add comment