Invalid set index 'x' (on base: 'bool') with value of type 'int' error.

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By BlinMaker2077

I’am beginer and i was convert my project from version 3.5.1 to version 4.0.0.
Meanwhile fixing some details in code i wsa get previously mentioned error:
nvalid set index ‘x’ (on base: ‘bool’) with value of type ‘int’ .
Once i was said i’am beginer and i’m trying to learn to think like a programmer,
in past i’ve complete the gd script online free course and i’m just beginer who don’t know how to fix that.
If there is somebody who can help me i will grateful to him.


extends CharacterBody2D

var rychlost = 150

var pohyb = Vector2()
var smer
var bulletSpeed = 500
var bullet = preload("res://Strela.tscn")

#základní pohyb 
func _physics_process(delta):
	if Input.is_action_pressed("nahoru"):
		pohyb.y = - rychlost
	elif Input.is_action_pressed("dolu"):
		pohyb.y =   rychlost
		pohyb.x = 0
	if Input.is_action_pressed("doleva"):
		pohyb.x = - rychlost
	elif Input.is_action_pressed("doprava"):
		pohyb.x =   rychlost
		pohyb.y = 0
	pohyb = pohyb.normalized()
	pohyb = move_and_slide()
	if Input.is_action_pressed("střílení"):

func strileni():
	var bullet_instance = bullet.instance()
	bullet_instance.position = get_global_position()
	bullet_instance.rotation_degrees = rotation_degrees

func vykuchani():

func _on_Area2D_body_entered(body):
	if "buzerant" in


:bust_in_silhouette: Reply From: crossbito

Hi, in Godot 4.0, the move_and_slide() function returns a boolean value.

It returns true if the body collided; otherwise, it returns false.

You need to change the line

pohyb = move_and_slide() 



To use move_and_slide(), you need to change the velocity of the node. In the case of CharacterBody2D, it has a variable called velocity that you can modify to make those changes.

Check out the documentation of move_and_slide()

Thank’s man!

BlinMaker2077 | 2023-06-11 16:01