140 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			140 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								-- Modifications to sample scripts will be lost the next time you start the game.
							 | 
						||
| 
								 | 
							
								local function streaming_request(names)
							 | 
						||
| 
								 | 
							
									local loader = UISys.ScriptResLoader_Create(names)
							 | 
						||
| 
								 | 
							
									repeat yield() until loader:IsDone()
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								local commands = {}
							 | 
						||
| 
								 | 
							
								commands["god"] = function()
							 | 
						||
| 
								 | 
							
									local avatar = gRegion:GetLocalPlayerAvatar()
							 | 
						||
| 
								 | 
							
									if avatar instanceof LotusVehicleAvatar then
							 | 
						||
| 
								 | 
							
										avatar = avatar:GetRider()
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
									if avatar:DamageControl():HasTemporaryImmunity() then
							 | 
						||
| 
								 | 
							
										avatar:DamageControl():RemoveTemporaryImmunity()
							 | 
						||
| 
								 | 
							
										chat_system_reply("Removed immunity.")
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										avatar:DamageControl():GiveTemporaryImmunity(500000, 500000)
							 | 
						||
| 
								 | 
							
										chat_system_reply("Granted immunity.")
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["suicide"] = function()
							 | 
						||
| 
								 | 
							
									if gGameRules instanceof LotusGameRules then
							 | 
						||
| 
								 | 
							
										gRegion:GetLocalPlayerAvatar():Suicide()
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										chat_system_reply("That's not a good idea.")
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["killall"] = function()
							 | 
						||
| 
								 | 
							
									local player = gRegion:GetLocalPlayerAvatar()
							 | 
						||
| 
								 | 
							
									for gRegion:GetAvatars() as avatar do
							 | 
						||
| 
								 | 
							
										if not avatar:IsAvatarFriendly(player) then
							 | 
						||
| 
								 | 
							
											avatar:Suicide()
							 | 
						||
| 
								 | 
							
										end
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["kdrive"] = function()
							 | 
						||
| 
								 | 
							
									streaming_request({ "/Lotus/Types/Enemies/Corpus/Venus/Hoverboard/CrpHoverboardUnmannedAvatar" })
							 | 
						||
| 
								 | 
							
									gRegion:CreateEntity(Type("/Lotus/Types/Enemies/Corpus/Venus/Hoverboard/CrpHoverboardUnmannedAvatar"))
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["dargyn"] = function()
							 | 
						||
| 
								 | 
							
									streaming_request({ "/Lotus/Types/Enemies/Grineer/Eidolon/GrineerSkiff/GrineerSkiffUnmannedAvatar" })
							 | 
						||
| 
								 | 
							
									gRegion:CreateEntity(Type("/Lotus/Types/Enemies/Grineer/Eidolon/GrineerSkiff/GrineerSkiffUnmannedAvatar"))
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["kaithe"] = function()
							 | 
						||
| 
								 | 
							
									gRegion:GetNpcMgr():CreateAgentAtPosition(Type("/Lotus/Types/NeutralCreatures/ErsatzHorse/ErsatzHorseUnmannedGearSummonItemAgent"), gRegion:GetLocalPlayerAvatar():GetPosition(), ZERO_ROTATION)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["simulacrum"] = function()
							 | 
						||
| 
								 | 
							
									local args = Engine.OpenLevelArgs()
							 | 
						||
| 
								 | 
							
									args:SetLevel("/Lotus/Levels/Tenno/SimulacrumEnemySpawnerC.level")
							 | 
						||
| 
								 | 
							
									args:SetGameRules("/Lotus/Types/GameRules/LotusDangerRoomGameRules")
							 | 
						||
| 
								 | 
							
									Engine.OpenLevel(args)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["level"] = function(text)
							 | 
						||
| 
								 | 
							
									local level = text:split(" ")[2]
							 | 
						||
| 
								 | 
							
									chat_system_reply("Loading level "..level)
							 | 
						||
| 
								 | 
							
									local args = Engine.OpenLevelArgs()
							 | 
						||
| 
								 | 
							
									args:SetLevel(level)
							 | 
						||
| 
								 | 
							
									Engine.OpenLevel(args)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["captura"] = function(text)
							 | 
						||
| 
								 | 
							
									local level = text:split(" ")[2]
							 | 
						||
| 
								 | 
							
									chat_system_reply("Opening Captura in "..level)
							 | 
						||
| 
								 | 
							
									local args = Engine.OpenLevelArgs()
							 | 
						||
| 
								 | 
							
									args:SetLevel(level)
							 | 
						||
| 
								 | 
							
									args:SetGameRules("/Lotus/Types/GameRules/LotusPhotoBoothGameRules")
							 | 
						||
| 
								 | 
							
									Engine.OpenLevel(args)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["energy"] = function()
							 | 
						||
| 
								 | 
							
									local avatar = gRegion:GetLocalPlayerAvatar()
							 | 
						||
| 
								 | 
							
									if avatar instanceof LotusVehicleAvatar then
							 | 
						||
| 
								 | 
							
										avatar = avatar:GetRider()
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
									avatar:InventoryControl():GetActivePowerSuit():SetMaxEnergy(1000000)
							 | 
						||
| 
								 | 
							
									avatar:InventoryControl():GetActivePowerSuit():SetEnergy(1000000)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["scale"] = function(text)
							 | 
						||
| 
								 | 
							
									local scale = tonumber(text:split(" ")[2])
							 | 
						||
| 
								 | 
							
									if scale ~= 0 then
							 | 
						||
| 
								 | 
							
										gRegion:GetLocalPlayerAvatar():SetMeshScale(scale)
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										chat_system_reply("That's not a good idea.")
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["timescale"] = function(text)
							 | 
						||
| 
								 | 
							
									local scale = tonumber(text:split(" ")[2])
							 | 
						||
| 
								 | 
							
									if scale == 1 then
							 | 
						||
| 
								 | 
							
										gGameRules:CancelSlomo()
							 | 
						||
| 
								 | 
							
									elseif scale > 0 then
							 | 
						||
| 
								 | 
							
										gGameRules:RequestSlomo(scale)
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										chat_system_reply("That's not a good idea.")
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["pause"] = function()
							 | 
						||
| 
								 | 
							
									gGameRules:RequestPause()
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["unpause"] = function()
							 | 
						||
| 
								 | 
							
									gGameRules:RequestUnpause()
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["script"] = function(text)
							 | 
						||
| 
								 | 
							
									local query = text:sub(text:find(" ") + 1):lower()
							 | 
						||
| 
								 | 
							
									if query:sub(-6) ~= ".pluto" then
							 | 
						||
| 
								 | 
							
										query ..= ".pluto"
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
									if script := owf_get_running_scripts():find(|x| -> x:lower() == query) then
							 | 
						||
| 
								 | 
							
										owf_stop_script(script)
							 | 
						||
| 
								 | 
							
										chat_system_reply($"Stopped {script}.")
							 | 
						||
| 
								 | 
							
									elseif script := owf_get_available_scripts():find(|x| -> x:lower() == query) then
							 | 
						||
| 
								 | 
							
										owf_start_script(script)
							 | 
						||
| 
								 | 
							
										chat_system_reply($"Started {script}.")
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										chat_system_reply($"No such script: {query}")
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["sync"] = function()
							 | 
						||
| 
								 | 
							
									gGameData:SyncInventoryFromDB()
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["resync"] = commands["sync"]
							 | 
						||
| 
								 | 
							
								commands["unstick"] = function()
							 | 
						||
| 
								 | 
							
									gGameRules:UnstickLocalPlayer()
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								commands["quit"] = function()
							 | 
						||
| 
								 | 
							
									gFlashMgr:ExecuteToolMenuCommand(Resource("/EE/Editor/ToolMenus/Commands/CmdQuit"))
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								for prefix in commands do
							 | 
						||
| 
								 | 
							
									chat_subscribe_prefix("/"..prefix, true)
							 | 
						||
| 
								 | 
							
									chat_subscribe_outgoing_prefix("$"..prefix)
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								repeat
							 | 
						||
| 
								 | 
							
									while evt := owf_next_event() do
							 | 
						||
| 
								 | 
							
										if evt.type == OWF_EVT_SUBMIT_CHAT_MESSAGE or evt.type == OWF_EVT_OUTGOING_CHAT_MESSAGE then
							 | 
						||
| 
								 | 
							
											for prefix, f in commands do
							 | 
						||
| 
								 | 
							
												if evt.text:sub(2, #prefix + 1) == prefix then
							 | 
						||
| 
								 | 
							
													f(evt.text)
							 | 
						||
| 
								 | 
							
													break
							 | 
						||
| 
								 | 
							
												end
							 | 
						||
| 
								 | 
							
											end
							 | 
						||
| 
								 | 
							
										end
							 | 
						||
| 
								 | 
							
									end
							 | 
						||
| 
								 | 
							
								until yield()
							 |