whats going wrong here

Im trying to send a thing to another thing and I cant figure out why its not sending because i put a print string at the end of the first one and it worked but it wouldnt send to the other one


1st

2nd
this is for a collectable system that works kinda but i want it to appear only when i go to a specific spot to “get quest”

I have some things you could try and what i’ve noticed:

  1. On the first Picture Target->Interact :
    Can u make sure that target is a valid object AND that u call the BPI_Interact in this object too? Since I noticed that your call is “blue” at Target instead of yellow.

I usually use BPI like so:

  1. Is Object/Actor Valid?
  2. Does Object/Actor Implement BPI?
  3. Call BPI Event with that Object/Actor

  1. It is not related to your actual problem but in the 2nd Picture you calling “Interacting” directly after “Interacting” (inifite loop?)

If this doesnt help maybe someone can correct me? Or you can provide further details about the “Target” Variable

1 Like

https://www.youtube.com/watch?v=m9416Fi-PJw so I was using this guys video since I was told its better to learn early to use it to help minimise stuff and i mostly did follow it just changing it where I think needed so this might help you understand what it was. I also think I did what you said changing it to a yellow thing which then created an infinite loop which i fixed with a do once node at the begining. But I still cant get it to send a thing to another thing. basically I was trying to do a thing where you go to a location which has a collision box and when you press E it sends a notifcation type thing to let the objectives to become visibile to be collected but it isnt sending to the next object.

In general your BP should work, in case the Actor “Target” is indeed valid and uses the Interface:

If you could try something like this and see what it prints you out?

1 Like

So I had tried it and it stopped at actor is not valid


(I also probably wont be able to respond with this for a bit cause ill be busy but ill be able to come back and have a look at what you say later but so far thanks for using your time to try and help me)

1 Like

Okay! As i thought → where do you SET the “Target” Variable?

Because currently your Target is NULL that means it has no actual Value or Reference to something.

You probably want this Target Value to be the other BP with the Interface.

1 Like

This is how i setup my Test Actors:

Actor1::Target → Actor2

Its just for testing, I guess you using Overlapping → OverlappedActor → Interact_BPI…

I wont be responding for a few hours, maybe someone here has an better explanation :sweat_smile:

1 Like

you have succesfuly pushed it back to the actor does not have the interface with doing that target thing since you were right so thanks.
so now i just have to get it to the final point so that it sends to there.
also with the target thing it seems to have only chosen the place bp items not the bp thing as a whole since i didnt get any options for that so i had to choose the first placed object do you know what that means or if its meant to be like that and if so does it automatically do all the others if one place bp is effected or only that specific one that was picked to target?


currently what it is 1st part

and second part that it should be sending too

target stuff I was talking about.

Okay I see, 1 quick notice on your 1st Blueprint maybe we had misunderstanding:

In this picture you can see why you need a “DoOnce” node, but by removing the “Self+Interact” you wouldn’t.

On the other Hand I guess your Target is an Actor right? Not a Collectible itself (pic2)

And last:

if its meant to be like that and if so does it automatically do all the others if one place bp is effected or only that specific one that was picked to target

It should only call the BPI_Interact::Interact on the selected Target Actor, if you want to make this call on ALL Collectibles you would need a “ForEachLoop” with for example a “GetAllActorsWithInterface”

Thanks for your patience

Side note: Target should not be the exact same Actor, in case you selected this one... it would just do the same as in picture 1

1 Like

K thanks you were correct on most of it and sorry I havent responded in a bit I was busy.
I was able to push the code to the end where its meant to go and end at but now its just a matter of making the object visible





I was trying to update the visibilty in this last one but nothing happens except it reaching the print.

If this is multiplayer the action aspects have to happen on the server.
Client does a local interaction test… Is this thing interactable (implements interface).
If so, RPC server to try and interact… implements interface etc. If so, call interaction.

Also, Game mode only exists on the server. Clients do not get a copy of it in a published game. So any calls to the GM must be done from the server side. Typically that would be done from the controller class.

Furthermore Get nodes that require a player index are single player. They do not work for multiplayer.

index 0 on clients returns things about themselves.
Index 0 on dedicated server returns the first client that joined ALWAYS.
Index 0 on listen server returns the Host client ALWAYS.

e.g. Player 2 (index 1) does something. If using index 0 in server code it will apply the action to Player 1.

1 Like

so if single player only ever use those stuff but if multiplayer use gamemode?
And does it matter if i do use gamemode for single player stuff.
yea sorry you may need tp dumb it down a bit i have been learning as best as i can but theres only so well i can learn without other peopls help.

Multiplayer does use Game Mode a lot, but it’s done through proper calls and chains. e.g. the controller class.

Client does something, calls event on local controller.
Local controller calls an event on the servers copy of the controller (RPC: Run on Server)
Now on the Server the event gets game mode and calls an interface event on the GM.
The GM’s interface event executes the logic needed.

Every primary game class should have a basic BP Interface implemented.
Character, controller, player state, game mode, game state

These allow you to communicate without having to cast generating a hard reference (eats more RAM and slow your game down). This is a more advanced process, but it is the correct way of doing things. Even in single player.

I can do a vid tutorial if you need it.

Depends on what you are doing. Somethings should be done in the GM, but a lot of others shouldn’t. Typically GM is used to for the Games rules and Spawning/Possessing PAWNS. Start/End of game, Special event initializations etc.

1 Like

K thanks I can see what I can do but I will try to keep this in mind for future refrences to do. but im afraid if I touch anything like that it will break everything.

Breaking things is a part of learning. First 5 projects are typically crapshoots.
I personally prototype in a dump project. Then port over the working code to the main project.


FYI, Inventory should be handled by the Player State. Generally you use an Actor Component for the logic and add it to the Player State class.

1 Like

I have learnt devistating news that it does appear but only if I click on the pizza itself rather then appearing after clicking in a specific area.
Update: after removing something and placing another it makes the first pizza appear but not the others which is likely due to them all being seperate actors even with the same code that links them