Stack Oveflow Error

Godot Version

<!- 4.2.1 →

Question

I have a Stack Oveflow error in my GDscript. I think I understand why (Possibly cause my Set, get is creating a loop) but I am not sure how to fix it.

`extends Node2D

var shake = false

#shake power
var strength_power:float = 10.00

var ball_speed = 170

##timeout

var timeFinished = false

func _process(delta):
if ball_speed > 500:
ball_speed = 500

var Player1PowerUp1Usage = 5
@export var Player2PowerUp1Usage = 5 :
set(new_val):
Player2PowerUp1Usage = pos_var_set(new_val)
get:
return Player2PowerUp1Usage

var canUseP1 = true
var canUseP2 = true

func pos_var_set(new_val):
if new_val > 0:
Player2PowerUp1Usage = new_val
else:
Player1PowerUp1Usage = 0`

I think you need to change this to this:

@export var Player2PowerUp1Usage = 5 :
set: pos_var_set

Let the function set the new value, in the declaration you only need to declare which function will handle the set method.

There is a parse error, after indenting I put brackets but it still won’t fix.

Actually, I think I missed an equal sign there:

@export var Player2PowerUp1Usage = 5 :
set = pos_var_set
1 Like

It still doesn’t work

extends Node2D

var shake = false

#shake power
var strength_power:float = 10.00

var ball_speed = 170

##timeout

var timeFinished = false

func _process(delta):
if ball_speed > 500:
ball_speed = 500

var Player1PowerUp1Usage = 5
@export var Player2PowerUp1Usage = 5 :
set = pos_var_set

var canUseP1 = true
var canUseP2 = true

func pos_var_set(new_val):
if new_val > 0:
Player2PowerUp1Usage = new_val
else:
Player1PowerUp1Usage = 0

I ran your code and didn’t got any errors. I believe there is something else involved in the problem. What error do you get now?

Whoops, I make a stupid mistake :man_facepalming:. Thanks for the fix!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.