Repository: godot
Issue: The visual script box ' find_interface() ' doesn't update when a property is typed into BEFORE re-starting Godot engine . .
Labels: bug,topic:visualscript

**Godot version:**
Godot 3.2.3 stable . .


**OS/device including version:**
Windows 10, 64-Bit

**Issue description:**
I've been trying to follow the tutorial, for making a VR game, on the official docs page, making it into visual script, and I got it working, head-set works, like magic, really nicely made work-flow, to me . . However, I ran into a problem, that was REALLY weird, to follow the official VR guideline, one has to use a Singleton in the ARVRServer singleton list, called " OpenVR ", which is there, after installing Mux213 ' OpenVR ' plug-in . .

<img width="876" alt="Skærmbillede (621)" src="https://user-images.githubusercontent.com/61069740/97101360-06852e00-169d-11eb-98c6-bc8614f51654.png">

Ok, so after installing that, I get the find_interface() method, and do this : find_interface("OpenVR"), in visual script, see above box . . So far, so good . . However, the ' output ' port, an ANY output visual script port doesn't give me access to the methods, of the find_interface("OpenVR").initialize, which is an OBJ output port, right away . . And, when I tried Calling the method, from the VAR, as set in the official docs VR tutorial, it gave an ERROR, saying ' Invalid call ', but when I used the ' has_method ', it returned TRUE, for the ' initialize ', however it refused to run it, using a Call visual script box . .

Then, I re-start the engine, and NOW, on the find_interface("OpenVR") node box, AFTER restarting, the OUTPUT port has some-how changed form an ANY output, to and OBJ, also when I ' drag that ' port out, or so, I NOW get the list of functions, including Initialize(), which is NEEDED, to make the head-set go into VR mode, also Godot . .

I've seen this problem before, not sure if it's fixable, it has to do, with the boxes in Godot not updating, in the way one would expect, of them . . . I'm not sure what happened, when I restarted the engine, I tried closing the scripts, reloading them, ' Refreshing ' the visual script, so on, only RESTARTING the engine, made it possible . . I think that's a bit counter-intuitive for beginners, and I see this problem other places, in visual script, that for instance, if I RENAME a function I made, added a ' new function ', then if I change the name of it, in the panel, on the side . . it doesn't auto update the names in the actual visual script canvas, and I have to delete the old ones, and put the new ones in . . I think it would be very nice, if we could have a ' better ' refresh button, OR the boxes simply updated automatically, as one typed stuff in them . . I'm not sure what the problem is, but it was pure luck I restarted the engine, and then it just worked, it makes no sense, maybe it can be improved, in some ways, so it's less confusing, to use visual script, esp. for new users, that would never figure this out, I'm a ' pro ', going on using visual script for 6 months ( jk, lol ) and, I had no idea how I made it work, found out, by accident . . . <3

**Steps to reproduce:**
Make a new visual script, add an ' Engine Singleton ' visual script node, and change the singleton, to ' ARVRServer ', like in the image above . . Then, drag that out, one gets a list, of methods, so on, pick find_interface(string) . . This makes a new box, called ARVRServer.find_interface(), which passes an OBJ and, outputs an ANY port, below it . . if one drags that out, one can't access the functions, of that property, aka ARVRServer.find_interface("OpenVR"), which is from the official Godot VR tutorial . . one can close the script, in the dock, reload it, and nothing happens, one can also run the game, and that doesn't change the output port, from type ANY, to OBJ . .

However, restarting the engine, suddenly, so long as "OpenVR" has been typed into the box, it suddenly updates the box, to a OBJ, and one can make it work . . It would be NICE, if when one typed "OpenVR" into the box, and pressed ENTER, or TAB, that it automatically changed the output, to an OBJ, since that makes the engine work, and if that wasn't possibly, to have a sort of ' Update Script Canvas Nodes ' button, that worked the SAME, as a re-start, of the engine . . . I leave this in the hands, of the engine pros, and the experts, on visual script, that have made an amazing engine, to this point, Omg <3

ps. Here's a video, of it working, after doing the above steps, so it works, but it's not intuitive, and new users will prob. never figure this out, AND in my experience, this is a problem, with MANY boxes, not just find_interface(), when one types "OpenVR" in it, ideally the box should just update, on it's own, for new users, not sure . . .

https://www.youtube.com/watch?v=eRYn5L0bb0E

There's a tutorial, on the internet, for working around it, but in general, if boxes auto-updated, after typing something in them, and then ' clicking ' in another box or, so, it just updated, or THERE was an UPDATE box button, maybe in a collapsable sub-panel, or so, like this . . .

![2020-07-06 0242 visual script](https://user-images.githubusercontent.com/61069740/97101278-5e6f6500-169c-11eb-84bc-fba8362e9e2c.jpg)

One could have a button, called ' Update All Ports ', with a re-cycle refresh icon or, so . .

![2020-10-25 0831](https://user-images.githubusercontent.com/61069740/97101302-97a7d500-169c-11eb-84f7-df808e6f8643.jpg)

<img width="712" alt="2020-10-25 0832" src="https://user-images.githubusercontent.com/61069740/97101306-9f677980-169c-11eb-8957-a96771bc2cf2.png">

Anyway, it would be nice if it was a bit more user-friendly, to make use of these things, there is an answer, on the internet atm, so it's not a big problem, but AFAIK, the problem of boxes not updating like this, is almost universal, AFAIK <3 . . . Thanks . .

**Minimal reproduction project:**
See above . . . <3

I think fixing this problem, on a universal level, ie. making all boxes update like this, would fore-see a lot of problems, beginners, and more advanced users might have, using visual script, no matter how, it is solved, as long as it's done well, ideally one would want it to update, as soon as one clicks another box, after writing, "OpenVR", in the box, to make sure, people see it, or when one presses ENTER, or when one CLICKED the field, one got a LIST, of things one could write in the BOX, and if one CLICKED say "OpenVR", it would auto-change it, to an OBJ output port, that can then be ' dragged ' out, to find the fn- Initialize() method, to make the head-set work . .