Run it
Copy the script and paste it into your executor.
()
.()
.maxWaitTimeInLobby =
.collect_daily_reward =
.auto_join_dungeon =
.dungeon =
.difficulty =
.hardcore =
.auto_choose_dungeon_and_difficulty =
.boss_raid =
.auto_choose_raid_boss_tier =
.boss_raid_tier =
.wavedefense =
.wait_for_friends =
.friends = {
,
,
}
.wait_for_friends_to_host =
.host_name =
.multi_roblox =
.host_name_key = {}
.name_key_list = {
{},
{},
{},
}
Services = {
Players = :(),
ReplicatedStorage = :(),
PathfindingService = :(),
Workspace = :()
}
LocalPlayer = Services.Players.LocalPlayer
LOBBY_PLACE_IDS = {
[] = ,
[] = ,
[] =
}
()
LOBBY_PLACE_IDS[.PlaceId] ==
()
.auto_choose_dungeon_and_difficulty
level = LocalPlayer:():().Value
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
level <=
.dungeon = ; .difficulty =
.dungeon = ; .difficulty =
()
Services.Workspace:(LocalPlayer.Name)
.()
(()
Services.ReplicatedStorage.remotes.loadPlayerCharacter:()
)
Services.Workspace:(LocalPlayer.Name)
(character)
character
character:()
.()
character:()
(character)
(()
.Lighting:()
.()
LocalPlayer.PlayerGui:()
.()
introGui = LocalPlayer.PlayerGui:()
introGui introGui:()
camera = Services.Workspace.CurrentCamera
camera character
humanoid = character:()
humanoid
camera.CameraType = .CameraType.Track
camera.CameraSubject = humanoid
blur = .Lighting:()
blur blur:()
)
()
clock =
doneMoving =
.ai_done =
character = LocalPlayer.Character Services.Workspace:(LocalPlayer.Name)
character
.ai_done =
humanoid = character:()
rootPart = character:()
humanoid rootPart
.ai_done =
.(()
randomWayPoints = {
{ .(, , ) },
{ .(, , ) },
{ .(, , ) },
{ .(, , ) },
{ .(, , ), .(, , ) },
{ .(, , ), .(, , ) },
{ .(, , ) },
{ .(, , ), .(-, , ), .(-, , ), .(-, , ) },
{ .(, , ), .(-, , ), .(-, , ) },
{ .(, , ), .(-, , ), .(-, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(-, , ) },
{ .(, , ), .(, , ), .(-, , ) },
{ .(, , ), .(, , ), .(-, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) },
{ .(, , ), .(, , ), .(, , ) }
}
selectedSet = randomWayPoints[.(, #randomWayPoints)]
_, destination (selectedSet)
.ai_done
path = Services.PathfindingService:()
path:(rootPart.Position, destination)
waypoints = path:()
i, waypoint (waypoints)
.ai_done
humanoid:(waypoint.Position)
humanoid.MoveToFinished:()
doneMoving =
)
(doneMoving clock > .maxWaitTimeInLobby)
clock = clock +
.()
.ai_done =
rootPart
humanoid:(rootPart.Position)
()
.auto_join_dungeon
.multi_roblox
LocalPlayer.Name == .host_name_key[]
.boss_raid
Services.ReplicatedStorage.remotes.createBossLobby:(.boss_raid_tier, , )
.()
_, v (.name_key_list)
Services.ReplicatedStorage.remotes.addPlayerToBossWhitelist:(v[])
.()
.()
expectedNames = {}
_, v (.name_key_list)
.(expectedNames, v[])
.(expectedNames, LocalPlayer.Name)
lobby = Services.Workspace.bossLobbies:(LocalPlayer.Name)
lobby
children = lobby.players:()
presentNames = {}
_, child (children)
.(presentNames, child.Name)
allPresent =
_, name (expectedNames)
.(presentNames, name)
allPresent =
allPresent
.()
.()
Services.ReplicatedStorage.remotes.startBossRaid:()
.()
Services.ReplicatedStorage.remotes.createLobby:(.dungeon, .difficulty, , .hardcore, , .wavedefense)
.()
_, v (.name_key_list)
Services.ReplicatedStorage.remotes.addPlayerToWhitelist:(v[])
.()
.()
expectedNames = {}
_, v (.name_key_list)
.(expectedNames, v[])
.(expectedNames, LocalPlayer.Name)
lobby = Services.Workspace.games.inLobby:(LocalPlayer.Name)
lobby
children = lobby:()
presentNames = {}
_, child (children)
.(presentNames, child.Name)
allPresent =
_, name (expectedNames)
.(presentNames, name)
allPresent =
allPresent
.()
.()
Services.ReplicatedStorage.remotes.startDungeon:()
.()
.boss_raid
hostName = .host_name_key[]
Services.Workspace.bossLobbies:(hostName)
.()
.()
joinRemote = Services.ReplicatedStorage.remotes.playerJoinBossLobby
lobby = Services.Workspace.bossLobbies:(hostName)
lobby
success = (()
joinRemote:(lobby)
)
success
lobby.players:(LocalPlayer.Name)
.()
hostName = .host_name_key[]
Services.Workspace.games.inLobby:(hostName)
.()
.()
joinRemote = Services.ReplicatedStorage.remotes.joinDungeon
lobby = Services.Workspace.games.inLobby:(hostName)
lobby
success = (()
joinRemote:(hostName)
)
success
lobby:(LocalPlayer.Name)
.()
()
character = ()
humanoid = (character)
humanoid
(character)
(autoChooseDungeon)
.ai_done =
.(() (AIMovementInLobby) )
.ai_done
.()
(startLobbyDungeon)
()
()
.()
startevent = :().remotes.changeStartValue
startevent:()
()this is strictly an open source project of only the lobby logic. you can add your own autofarm logic. theres a check at the end if isLobby() then runLobbyMode() else you can add your own autofarm after