The system is built by selecting a block using a hot panel

Database.gd
image
player.gd


slot.gd

image
image

“Attempt to call function […] on a null instance” means the variable the function is called on is null. In your case the player variable is null. This can happen for several reasons.
You are setting player @onready var player = get_tree().current_scene.find_child("player") to the result of find_child and that is not giving an error, but it is returning null. This usually means the node you are looking for could not be found by name. Make sure the name matches and the node exists when this Button is created. You may want to make this call deferred or otherwise called later in the process.

“Invalid call to funcion […] Expected 0 arguments” means you called a function with the wrong amount of arguments. In this case, your use_item() function takes no arguments, but you called it with an argument, so it tells you that either you’re calling the wrong function or you’re calling the correct function with the wrong data.

Just about the last mistake. I decided to create another test project where I did everything according to the video from scratch, but instead of sprite2d FX I added Node2D Database with my own code. I can’t figure out which function to use instead of fx
Here are two scripts from the video about this function and can be compared with my screenshots:
Player - player - Pastebin.com
Slot - slot - Pastebin.com

Oh, yes! I was able to fix it! Thanks :slight_smile:

However, I would like to know how to separate them?
image
image

I have an idea