x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Changing a function to pure does not update the function to pure in child blueprints

In my parent blueprint, I have implemented a function. In a child blueprint, that function is overriden and used in the event graph. Now I set the function to pure in the parent BP. However, in the child blueprint where the overriden function is used in the event graph, the function node still has an execution input. The workaround to get rid of the execution input was to delete the function in the child blueprint and to create the override function again. Then, the execution input was gone.

Product Version: UE 4.8
Tags:
more ▼

asked Jun 13 '15 at 11:35 AM in Bug Reports

avatar image

Theokoles
91 6 9 14

avatar image Ben Halliday STAFF Jun 15 '15 at 09:01 PM

Hi Theokoles,

I'm not seeing this occur in 4.8.0. Can you show me an image of what your function looks like in the parent BP, and what it looks like in your child BP, both before and after switching the cast to a pure cast? Thanks!

avatar image Theokoles Jun 18 '15 at 06:58 PM

So I have reproduced this in a new project. In the parent BP I have created a function that is overridden in the child BP. Then I switched the function to pure in the parent BP. I recompiled and saved both BPs. In the child BP, the overridden function node still has execution pins, even if I delete the function node and create it again or if I click refresh node.

alt text alt text

bp_parent.jpg (516.3 kB)
bp_child.jpg (498.2 kB)
avatar image Ben Halliday STAFF Jun 23 '15 at 09:12 PM

Thanks for the repro steps! I see the same behavior, however I don't believe this is a bug. Once you override a function in a Child BP, the only part that references the Parent's function is the Parent: Function node (in your case, Parent: Some Fun). When calling the function in the Event Graph, you're calling your overridden function rather than that of the Parent, and as such it expects execution pins.

The only potential bug I'm seeing is that the menu is still switching the overridden function in the context menu to green (pure). I'll go ahead and enter it if that's the only thing wrong here.

Am I missing something, or does that make sense to you?

avatar image Theokoles Jun 25 '15 at 06:15 PM

In my case I wanted the implementation in the child BP also to become pure. I did not find a button to do this. The only workaround I found was to delete the function in the child BP, and to override it again (now it inherited the pureness from the parent function) and to implement the behavior again from scratch. So i assumed that the overridden function failed to automatically become pure when the pureness of the parent function changed.
If this is not a bug, how do I change the pureness of the child function in my example without deleting it and overriding it again?
If the behavior in my screenshots is really intended, then there is a button missing to toggle the pureness of the child function independently from the pureness of the parent function.
Or think about it this way: When I override a function, I don't have a choice if the child function shall be pure, because it automatically inherits the pureness from the parent function, and there is no way to change it (it says "Graph not editable" in the details panel).
Is pureness something that is inherited from a parent function to a child function? It seems to me that the answer right now is "sometimes", which is not very consistent.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Hey Theokoles,

Ah, I see what you're saying. In overridden functions, you don't have the ability to toggle between pure/not pure. That seems like an oversight to me, so I've entered a bug report for the issue (UE-17804). I'll let you know when I see any change in its status.

Inheritance of functions should be simple: the child receives all the changes to the function from the parent. If you override the function in the child at any point, it no longer inherits changes to the function from the parent. So a pure function will remain pure in the overridden function, even if you make the function not pure in the parent. If you delete that override, then override the function in the child again, the new overridden child will inherit the current state of the parent. That's all pretty consistent, but without being able to make any changes to the details of the overridden function, I can see how that might be confusing. Hopefully we'll get that fixed. Thanks for the report!

more ▼

answered Jun 27 '15 at 06:17 PM

avatar image Theokoles Jun 28 '15 at 10:23 AM

Yes, that's what I was trying to say. If you implement the button to toggle between pure and not pure, everything should be fine.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question