code

func _process(delta):
	if overlaps_body(get_node("/root/Node2D/RigidBody2Dchar/CollisionShape2D/Area2Dpers")) == true :
		print("jeje colision")

these are the images where you can see the nodes.

the other node implicated is a Area 2d in noderigidbody2dpuer....(there is more but you only can see it), that is the node where the code is written.

Why is an Area2D a child of a CollisionShape2D? I don't know if that's the problem, but it looks strange.

    DaveTheCoder well i am noob , this is my first time trying to make a game in godot, only thing i had touch before was gamefroot and i was new too but i changed to godot because after updates thing that used to run stopped to run and i wanted something that dont updated without permision. I just want to learn

    How should the nodes run? I mean what is the normal? As i sad i am a noob.

    Can you explain what you're trying to do? Why did you create those nodes?

      DaveTheCoder
      well in long term i want to use they for scene changing. but first i want to know if collision detection run, and that little step is want i am trying to do now. if it print the text it means it runs and i can continue to another step, but it not runs.

      because i want the player to go and return from one scene to another, like in a rpg.

      Why on earth are you doing collision detection this way and not using the built in signals? Using physics process for collision detection this simple is extremely wasteful and you're also grabbing the node in a wasteful way too.

        Lethn. Well i have said yet a couple of times but... It is because i am a noob trying to learn to code.

        lol Alright in that case, I highly recommend learning about signals, this will help you with a ton of problems and it's brilliant for being efficient with code, groups are also much better for grabbing nodes in the hierarchy when they aren't direct parents or children. When using the physics process it fires off every frame and getting nodes the way you're doing means I think that it's searching through the whole hierarchy every time each frame which is very unnecessary.

        getting nodes the way you're doing

        Which means that get_node() should be in _ready(), or declared as an onready variable.

        func _ready() -> void:
            var my_node: Node = get_node("/root/Node2D/...")

        Then use the node reference my_node if you need it later.

          DaveTheCoder. But if i put in in ready it only will check if collision happens one time and i need to know the moment exact moment of the collision because in the future touching the door is going to change the scene(even if now just print).

          And i am not sure but if i save a variable with the information of the node, ¿it wouldnt remain outdated?

            Does the node get created or destroyed after _ready() is executed?

            mtcat information of the node

            The code I posted only stores a reference to the node, not the node's position or other details.

            I managed to make it to print it.
            I had to put monitorable (true) in the other node( it had monitoring but not monitorable put)