Bulletholes are not in their original scale :(

after 2 days of trying, i solved it! for thoose who are wondering:

to fix the random scaling, i made the bullethole a child of a node3D that will contain all bulletholes and not just being a child of the collider, because if it was a child of the collider and the collider is scaled: you will get stretched/scwuished bulletholes( shoutout to @gertkeno )

var bulletHoleNode = BULLET_HOLE.instantiate()
	bulletholes.add_child(bulletHoleNode)

to fix, z-fighting, i just changed the bullethole’s position to x:0, y:0, z: -0.001

and to fix the rotation issues, i made a surface detector for if its the ground, that the z axis rotates at 90°

func create_bullet_hole() -> void:
	var bulletHoleNode = BULLET_HOLE.instantiate()
	bulletholes.add_child(bulletHoleNode)
	
	# Set the position of the bullet hole at the collision point
	bulletHoleNode.global_position = shooter.get_collision_point()

	# Get the normal of the surface
	var normal = shooter.get_collision_normal()

	# Determine rotation based on the normal
	if abs(normal.y) > 0.5:  # If the normal is mostly vertical (top/bottom)
		bulletHoleNode.rotation_degrees = Vector3(90, 0, 0)  # Rotate 90° on X-axis
	else:  # Otherwise, assume it's a wall face
		bulletHoleNode.look_at(bulletHoleNode.global_position + normal, Vector3.UP)