Hi,
I’m trying to get started with the web remote control interface
I’ve followed through the examples and it’s all working as expected, but ONLY in the editor and not at runtime. As soon as I play I fail to see any of the changes I’m trying to make get applied. Upon stopping play all the changes are applied retroactively however.
Does anyone know if this is normal behaviour? I would expect to be able to make changes at runtime, I couldn’t see anywhere in their documentation that explicitly stated it doesn’t work at runtime so assume I’m doing something wrong
I was using UnrealPython for an external controller, but we are now forced to use 4.24, which doesn’t have anything built for it; they stopped updating the full plugin when Epic included Python by default (but only in editor). I was previously able to include the full UnrealPython as a plugin in my project up to Unreal 4.23, but now it’s just not supported.
I need to externally control things at run time - positioning objects, setting text, calling functions, etc. We are using a third party build of 4.24 for our virtual broadcast applications, I can’t just write my own (and if I could it would be very burdensome, at this point). I don’t know why they can’t enable stuff like this for runtime (either python or this web control).
I’m testing it now; it’s as TomGirraphic says - it may function in the background during run time, but you don’t see results until you go back into the editor. Either it doesn’t update at runtime, or there’s a setting somewhere we’re missing.
In Editor mode you have to turn off this setting:
Edit > Editor Preferences > General > Performance > Use Less CPU when in background.
In play mode the path to the object changes. Instead of (for example) this:
/Game/EscenaPlayera/M_Playa_WebRemote.M_Playa_WebRemote:PersistentLevel.SpotLuzFarola.LightComponent0
It works in Editor and also in PIE when I add “UEDPIE_0_” to the level path. But when I use Standalone Mode or package the game I can’t send any remote requests anymore. Is there a different suffix for these modes? Or does the Remote Control API not work in standalone?
In case anyone is still struggling with this, I discovered the problem is that in standalone mode the Editor will have started a server instance, and as the standalone game will try to start a server bound to the same port, it will fail.
The solution is to prevent the server from automatically starting (Auto Start Web Server/Web Socket Server in project settings), and to make sure the console command WebControl.StartServer is only triggered in either the editor or your standalone game.
If there is a runtime way to set the web control port, that would make life much easier, but I couldn’t see one!
So I added those commands to the shortcut, I disable webserver and web socket server starting by default and entering console commands to start them again when the app is playing… which when I’m in editor WebControl.StartWebSocketServer activates the app in the browser. This works as expected. When I run the app with the correct command lines added (rcWebEnable etc) and then start the server by console command and then the web socket server nothing happens. It’s as though this part is broken at runtime… is there anything I am missing? Kinda pulling hair but I think maybe it’s just broken I’m on 4.27.2
I dont use any console commands at all and in the project settings is everything enabled. I use the default setting when you create a new project and activate the Web Remote Control PlugIn. Everything works out of the box. Just add the two Parameters in the start Shortcut of the packaged app. Same like Pixelstreaming needs with -PixelStreamingIP=localhost and -PixelStreamingPort=8888
For everybody who just want to know how to make a request to control the application via Postman here you have the right PUT for your Postman-Collection (Body/Raw/Json):
Well, basis of the above replies i manged to get everything working on the same computer only. however HTTP requests over network is not working. the built in dashboard through app does open on another computer linked to the same network, however i can’t make requests through postman to the engine/project. it loads for a while then times out.
Any idea on this please?
Actually, it works with Custom Events too. I’ve tried all three methods: function, custom event in bp actor, custom event in level bp and all three are working fine via postman. For those whom it will be of help while googling:
I use UE 5.3
In Postman:
Choose GET on the left, write down:
localhost:30010/remote/preset/yoursavedpreset
and click SEND on the right.
You will receive a list of your exposed functions from RemoteControlPlugin in UE 5.3.
You can use any kind of event, function, seetings etc., all works.
Now, you want to trigger event of function? Change GET to PUT on the left
Enter address: localhost:30010/remote/object/call
DO NOT CLICK SEND YET
Click Body tab and insert this:
{
“objectPath” :“/Game/Maps/mainlevel.mainlevel:PersistentLevel.BP_LastResultCENTER_C_1”,
“functionName” : “PrintResult”,
“parameters”: {}
}
For Objectpath use path from your list of functions from point 1 !
Function name is function name, you’ll find it in the same list!
Parameters: i leave it blank, as I want just to fire the event.