I'm not a strong coder...but I keep checking out 4.0..like we all do...but I don't like the the new gdscript...seems it would be plain easier to go to c#...all the simplicity and forgiving-ness of gdscript has left the building.. here are some simple things I'm fighting with...

fps.text = String(Engine.get_frames_per_second())....gives a no constructor error....even if I cast the float to a string and then feed the label.text the string...gives a different error but still an error/

global_transform.origin??? was this removed?... I'm trying to cast a vertex location to a vector3...but I was using transform.xform(vetex id)...but I cannot even use the mentioned global_transform.origin...

lmao..I'm just really frustrated when I cannot accomplish simple tasks.

does anyone know where there is a cheat sheet or break down of all the changes...the documentation is not helping me. period.

This sounds like a rant because I am frustrated...granted...I typed this all while frustrated...I'm not calling anyone or anything stupid :)... I'm just upset :)

I'd like to see GDScript 2 documentation too. It doesn't have to be pretty and polished. A text file listing the changes would suffice.

Does the latest documentation show the differences between GDScript 1 and 2?

@Megalomaniak said: you mean to link latest rather than stable, right? https://docs.godotengine.org/en/latest/

yes, thanks...I did post the wrong link.

@DaveTheCoder : yes, I'm not sure if it's incomplete or just written for more advanced "humans"..but it didn't help me :)

Seems to work the same as Godot 3.x, except for a few small differences, like the onready keyword. In fact that code you are having trouble with works fine, and is the same exact syntax as GDScript 1. Maybe there is a bug with your code, or you were previously using an incorrect method that was removed.

extends Node3D

@onready var box : MeshInstance3D = get_node("Box")

func _ready():
	print("Godot 4")

func _process(delta):
	var fps = Engine.get_frames_per_second()
	print("fps: " + str(fps))
	var origin = box.global_transform.origin
	print("origin: " + str(origin))

@cybereality : first, nice avatar :)...that's pretty much what I did...casting the Engine.blah blah to a var and then casting that to a string and using print(string var)... that's why I was so frustrated yesterday...these are trivial things even the newest person should be able to accomplish. I was already aware of the other changes...the class naming and the @export, @onready etc...dropping spatial for node blah blah blah...

I should not be tinkering with it with an older project...maybe starting something new...but I still have a lot to do with my current project first...I just thought I would check the feasibility of bring it to the newer engine...obviously not a good idea anyway.

a year later