Skip to content

studio

local studio = require("@rodeo-client-lune/studio")
EntryDescription
MultiplayerTestClient
MultiplayerTestServer
OpenFileOpts
OpenOpts
OpenPlaceOpts
SaveResult
StartMultiplayerTestOpts
Studio
StudioBackend

type MultiplayerTestClient = vmMod.Vm & {
disconnect: () -> (),
}

type MultiplayerTestServer = vmMod.Vm & {
connectClient: () -> MultiplayerTestClient,
close: () -> (),
}

type OpenFileOpts = {
fflags: { string }?,
background: boolean?,
profile: boolean?,
logs: string?,
noHud: boolean?,
}

type OpenOpts = {
fflags: { string }?,
background: boolean?,
profile: boolean?,
logs: string?,
noHud: boolean?,
}

type OpenPlaceOpts = {
placeId: number,
fflags: { string }?,
background: boolean?,
profile: boolean?,
logs: string?,
noHud: boolean?,
}

type SaveResult = {
saved: boolean,
path: string?,
error: string?,
}

type StartMultiplayerTestOpts = {
placeFile: string?,
placeId: number?,
fflags: { string }?,
profile: boolean?,
runId: string?,
noHud: boolean?,
}

type Studio = {
sessionGuid: string,
backendId: string,
editVm: vmMod.Vm,
serverVm: vmMod.Vm?,
clientVm: vmMod.Vm?,
setMode: (mode: string) -> (),
getMode: () -> string,
save: () -> SaveResult,
close: () -> (),
getVms: () -> { vmMod.Vm },
}

type StudioBackend = {
id: string,
name: string,
open: (opts: OpenOpts?) -> Studio,
openPlace: (opts: OpenPlaceOpts) -> Studio,
openFile: (path: string, opts: OpenFileOpts?) -> Studio,
startMultiplayerTest: (opts: StartMultiplayerTestOpts?) -> MultiplayerTestServer,
}