• Projects
  • Hi, new here! Sharing my little project. Hope you like!

Only watched the first minute and what she said is utter nonsense. "Unity is ok, Unreal is strong, Godot more on the weak side". Really ? That is not exactly an intelligent analysis, if I may say so.

Maybe she was just talking to her fish :-)

Oh yeah, total nonsense. But the video was good entertainment. I mean, Unreal is strong in performance? You're lucky to get 60 fps with a $4,000 computer. Just look at unoptimized trash like PUBG. When that game came out, I couldn't even run 4K with a Titan X (Pascal) and the graphics barely looked better than Counter Strike, LOL.

Disclaimer: I have not seen the video, but let’s not get too off-topic nor go after someone for sharing their opinion (I am not saying that is happening here necessary, but do not want this to turn into a “this person is nonsense” thread). Everyone has a right to their option on Godot, one way or another 🙂

I am sorry if I hurt anyone's feelings. That was not my intention. It was a bit robust from my side and I should have chosen another wording. And all the people in here have my respect.

Hrm, posts that get too off topic can be split into another discussion topic. @ami7mina just let us know if you want us to do so.

Okay, sure. I won't continue with it. But I think you should watch the video, you'd probably agree with us.

Yeah I'm just referring to the topic as defined by the OP(opening post).

Very frustrated atm..

Problem: I changed the position of the Node2D of the Player. that's it.


Now, when I go to the animationPlayer, it shows aligned animations..

but everytime I hit that f6 debug it always goes back to separate and misaligned body parts, If anyone knows why this is happening, I'd appreciate it.

It means the numbers you put in for H and V frames is incorrect. It has to match the sprite sheet.

    cybereality Thank you! I just don't know which one of those since most of the textures are empty and there are ones that remain but still play well.. also,

    I somehow fixed it, my problem (the misaligned ones). I deleted those sprites, replaced them one by one and saved animations. and it appeared correctly.. but there are some errors that appear (at least 100+ errors) but seem to be working fine. I hope I fix them soon. If I am not doing the game, I'm listening to tips. Hope I release a prototype of this game but I don't know where to put it. ZERO EXPERIENCE.

    I would start by fixing all the error. You may not notice but something is definitely broken.

      cybereality
      Thank you! I wish I knew which sprite the program is having errors with. I'll try focusing on other stuff and get back to this eventually.

      Current issues facing atm: Lag from the game engine. My character can hardly walk. Is there a limit to preloaded stuff?

      This is just the PlayerClothingLoader attached to the Player (can't upload the gd here) :

      extends Node
      
      #These are the selection sprites for loading the character customization
      const BackArm_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackArm.png")
      }
      
      # missing const OutsleevesBack_spritesheet = {
      #	0 : preload
      #}
      
      const HeadgearBehind_spritesheet = {
      	0 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HGb-F-0004Hood.png")
      }
      
      const HairBack1_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0008.png")
      }
      
      const HairBack2_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0007.png")
      }
      
      const BackLeg_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackLeg.png")
      }
      
      #const BackShoes_spritesheet = {
      #	0 : preload()
      #}
      
      # const BangsBelowBack_spritesheet = {
      #	0 : preload()
      #}
      
      const Torso_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFTorso01.png")
      }
      
      # const Undies_spritesheet = {
      #	0 : preload
      #}
      
      const Weapons_spritesheet = {
      	0 : preload("res://Assets/Sprites/Items/Weapons/AerthWeapons001.png")
      }
      
      const Head_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFHead01.png")
      }
      
      const HairFrontBase_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0002.png")
      }
      
      const Frontleg_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontLeg.png")
      }
      
      #const FrontShoes_spritesheet = {
      #	0 : preload()
      #}
      
      #const Outfit_spritesheet = {
      #	0 : preload
      #}
      
      #const BangsBelow_spritesheet = {
      #	0 : preload
      #}
      
      const FrontArm_spritesheet = {
      	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontArm.png")
      }
      
      #const OutfitSleevesFront_spritesheet = {
      #	0 : preload ()
      #}
      
      const Eyes_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0008.png"),
      	8 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0009.png"),
      	9 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0010.png"),
      	10 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0011.png"),
      	11 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0012.png"),
      	12 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0013.png"),
      	13 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0014.png"),
      	14 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0015.png"),
      	15 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0016.png"),
      	16 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0017.png"),
      	17 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0018.png"),
      	18 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0019.png"),
      	19 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0020.png")
      }
      
      const Lips_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0008.png"),
      	8 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0009.png"),
      	9 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0010.png"),
      	10 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0011.png"),
      	11 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0012.png"),
      	12 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0013.png"),
      	13 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0014.png"),
      	14 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0015.png"),
      	15 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0016.png"),
      	16 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0017.png"),
      	17 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0018.png")
      }
      
      const Nose_spreadsheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0008.png"),
      	8 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0009.png"),
      	9 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0010.png"),
      	10 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0011.png"),
      	11 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0012.png")
      }
      
      const Eyebrows_spreadsheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0008.png"),
      	8 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0009.png"),
      	9 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0010.png"),
      }
      
      const Earrings_spritesheet = {
      	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Earrings/Earrings0001.png")
      }
      
      #const BangsSide_spritesheet = {
      #	0 : preload()
      #}
      
      const Bangs_spritesheet = {
      	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0001.png"),
      	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0002.png"),
      	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0003.png"),
      	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0004.png"),
      	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0005.png"),
      	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0006.png"),
      	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0007.png"),
      	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0008.png"),
      	8 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0009.png"),
      	9 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0010.png"),
      	10 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0011.png"),
      	11 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0012.png"),
      	12 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0013.png"),
      	13 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0014.png"),
      	14 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0015.png"),
      	15 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0016.png")
      }
      
      const Headgear_spritesheet = {
      	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0001Crown.png"),
      	1 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0002BigRibbon.png"),
      	2 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0003Rose.png"),
      	3 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HG-F-0004Hood.png")
      }

      I only have 5 errors now. compard to 400 -1000 errors

      Help would be appreciated. Will also search around the net.

      You can post code on the forum using copy and paste, but you have to type 3 tildes ~~~ on a line by themselves directly above and directly below the code. I fixed it for you. In terms of your question, I don't think there is a limit to what you can load. Obviously it will take longer the more stuff you load, but it should happen once when the scene is opened, not while the game is being played.

      Probably those errors could be causing issues. The yellow text is just warning, if you read it it tells you how to fix it. The red text is about the physics engine or collision polygons. They need to be convex (this means no caves). A convex polygon means you can draw a straight line through any part of the object, and it only hits two lines (one of each side). If it hits more than 2 lines, that means there is a cave or mouth type of shape, which won't work.

        cybereality
        Thank you very much!

        I don't remember any polygons in my game except for a color rect or some tilemap in diagonal? don't think those were the issues though. Anyway, here is my player.gd this is for the character:

        extends Actor
        
        onready var BackArmSprite = $Position2D/BackArm
        onready var OutfitSleevesBackSprite = $Position2D/OutfitSleevesBack
        onready var HeadgearBehindSprite = $Position2D/HeadgearBehind
        onready var HairBack1Sprite = $Position2D/HairBack1
        onready var HairBack2Sprite = $Position2D/HairBack2
        onready var BackLegSprite = $Position2D/BackLeg
        onready var BackShoesSprite = $Position2D/BackShoes
        onready var BangsBelowBackSprite = $Position2D/BangsBelowBack
        onready var TorsoSprite = $Position2D/Torso
        onready var UndiesSprite = $Position2D/Undies
        onready var WeaponsSprite = $Position2D/Weapons
        onready var HeadSprite = $Position2D/Head
        onready var HairFrontBaseSprite = $Position2D/HairFrontBase
        onready var FrontLegSprite = $Position2D/FrontLeg
        onready var ForeShoesSprite = $Position2D/FrontShoes
        onready var OutfitSprite = $Position2D/Outfit
        onready var BangsBelowSprite = $Position2D/BangsBelow
        onready var FrontArmSprite = $Position2D/FrontArm
        onready var OutfitSleevesFrontSprite = $Position2D/OutfitSleevesFront
        onready var EyesSprite = $Position2D/Eyes
        onready var LipsSprite = $Position2D/Lips
        onready var NoseSprite = $Position2D/Nose
        onready var EyebrowsSprite = $Position2D/Eyebrows
        onready var EarringsSprite = $Position2D/Earrings
        onready var BangsSideSprite = $Position2D/BangsSide
        onready var BangsSprite = $Position2D/Bangs
        onready var HeadgearSprite = $Position2D/Headgear
        
        const PlayerClothingLoader = preload("res://Source/Actors/PlayerClothingLoader.gd")
        
        #This is the CURRENT euipped clothing/hair etc:
        var curr_BackArm: int = 0
        var curr_OutfitSleevesBack: int = 0
        var curr_HeadgearBehind: int = 0
        var curr_HairBack1: int = 0
        var curr_HairBack2: int = 0
        var curr_BackLeg: int = 0
        var curr_BackShoes: int = 0
        var curr_BangsBelowBack: int = 0
        var curr_Torso: int = 0
        var curr_Undies: int = 0
        var curr_Weapons: int = 0
        var curr_Head: int = 0
        var curr_HairFrontBase: int = 0
        var curr_FrontLeg: int = 0
        var curr_FrontShoes: int = 0
        var curr_Outfit: int = 0
        var curr_BangsBelow: int = 0
        var curr_FrontArm: int = 0
        var curr_OutfitSleeveFront: int = 0
        var curr_Eyes: int = 0
        var curr_Lips: int = 0
        var curr_Nose: int = 0
        var curr_Eyebrows: int = 0
        var curr_Earrings: int = 0
        var curr_BangSide: int = 0
        var curr_Bangs: int = 0
        var curr_Headgear: int = 0
        
        func _ready():
        	BackArmSprite.texture = PlayerClothingLoader.BackArm_spritesheet[curr_BackArm]
        #	OutfitSleevesBackSprite.texture = PlayerClothingLoader.OutfitSleevesBack_spritesheet[0]
        	HeadgearBehindSprite.texture = PlayerClothingLoader.HeadgearBehind_spritesheet[curr_HeadgearBehind]
        	HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]
        	HairBack2Sprite.texture = PlayerClothingLoader.HairBack2_spritesheet[curr_HairBack2]
        	BackLegSprite.texture = PlayerClothingLoader.BackLeg_spritesheet[curr_BackLeg]
        
        
        
        
        
        #THIS is for the Buttons for charactercustomization
        func _on_ChangeHairBack1_pressed(): 
        	curr_HairBack1 = (curr_HairBack1 + 1) % PlayerClothingLoader.HairBack1_spritesheet.size()
        	HairBack1Sprite.texture = PlayerClothingLoader.HairBack1_spritesheet[curr_HairBack1]	
        	
        export var stomp_impulse = 1000.0
        
        func _on_EnemyDetector_area_entered(area:Area2D) -> void:
        	_velocity = calculate_stomp_velocity(_velocity, stomp_impulse)
        
        func _on_EnemyDetector_body_entered(body:PhysicsBody2D) -> void:
        	queue_free()	
        
        func _physics_process(delta: float) -> void:
        	var is_jump_interrupted: = Input.is_action_just_released("jump") and _velocity.y < 0.0
        	var direction: =  get_direction()
        	_velocity = calculate_move_velocity(_velocity, direction, speed, is_jump_interrupted)
        	_velocity = move_and_slide (_velocity, FLOOR_NORMAL)
        
        export var slide_friction = 400
        
        func get_direction() -> Vector2:
        	return Vector2(
        		Input.get_action_strength("move_right") - Input.get_action_strength("move_left"),
        		-1.0 if Input.is_action_just_pressed("jump") and is_on_floor() else 1.0
        		)
        
        onready var position2D=$Position2D
        
        func calculate_move_velocity(
        		linear_velocity: Vector2,
        		direction: Vector2,
        		speed: Vector2,
        		is_jump_interrupted: bool
        		) -> Vector2:
        		var out: = linear_velocity
        		out.x = speed.x * direction.x
        		out.y += gravity * get_physics_process_delta_time()
        		if direction.y == -1.0: 
        			out.y = speed.y * direction.y
        		if direction.x == 0:
        			$AnimationPlayer.play("Idle_Right")
        		#if Input.action_pressed(KEY_LEFT, 1.0):
        		#	$AnimationPlayer.play("Idle_Left")
        		if direction.x == 1.0:
        			position2D.scale.x=1
        			$AnimationPlayer.play("Run_Right")
        		if direction.x == -1.0:
        			position2D.scale.x=-1
        			$AnimationPlayer.play("Walk_Right")
        		if Input.is_key_pressed(KEY_SPACE):
        			var scene = load("res://Assets/Sprites/Items/ForestObjects/Flower001.tscn")
        			var player = scene.instance()
        			add_child(player)
        			player.position = Vector2(30, -200)
        		if is_jump_interrupted:
        			out.y = 0.0
        		return out
        
        
        #	if Input.is_mouse_button_pressed(true):
        	
        #func _input(event):
        #	if Input.is_action_pressed("move_left"):
        #		$AnimationPlayer.play("Jump")
        #		scale.x = -1.0
        
        	
        	
        func calculate_stomp_velocity(linear_velocity: Vector2, impulse: float) -> Vector2:
        	var out: = linear_velocity
        	out.y = -impulse
        	return out
        
        
        
        
        #func _ready():
        #	print("AERTH VERSION 0.0001")
        
        #func _ready():
        #	$AnimationPlayer.play("Walk")

        and this one is for the Actor.gd

        extends KinematicBody2D
        class_name Actor
        
        
        const FLOOR_NORMAL: = Vector2.UP
        
        export var speed: = Vector2(300.0, 1000.0)
        export var gravity: = 3000.0
        
        var _velocity: = Vector2.ZERO

        This one is for the PlayerClothingLoader.gd

        extends Node
        
        #These are the selection sprites for loading the character customization
        const BackArm_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackArm.png")
        }
        
        # missing const OutsleevesBack_spritesheet = {
        #	0 : preload
        #}
        
        const HeadgearBehind_spritesheet = {
        	0 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HGb-F-0004Hood.png")
        }
        
        const HairBack1_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack1-0008.png")
        }
        
        const HairBack2_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/HairBack2-0007.png")
        }
        
        const BackLeg_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFBackLeg.png")
        }
        
        #const BackShoes_spritesheet = {
        #	0 : preload()
        #}
        
        # const BangsBelowBack_spritesheet = {
        #	0 : preload()
        #}
        
        const Torso_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFTorso01.png")
        }
        
        # const Undies_spritesheet = {
        #	0 : preload
        #}
        
        const Weapons_spritesheet = {
        	0 : preload("res://Assets/Sprites/Items/Weapons/AerthWeapons001.png")
        }
        
        const Head_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFHead01.png")
        }
        
        const HairFrontBase_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/FemaleHairFrontBase0002.png")
        }
        
        const Frontleg_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontLeg.png")
        }
        
        #const FrontShoes_spritesheet = {
        #	0 : preload()
        #}
        
        #const Outfit_spritesheet = {
        #	0 : preload
        #}
        
        #const BangsBelow_spritesheet = {
        #	0 : preload
        #}
        
        const FrontArm_spritesheet = {
        	0 : preload("res://Assets/Sprites/FCharacter/FULLBODYFFrontArm.png")
        }
        
        #const OutfitSleevesFront_spritesheet = {
        #	0 : preload ()
        #}
        
        const Eyes_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0008.png"),
        	8 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0009.png"),
        	9 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0010.png"),
        	10 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0011.png"),
        	11 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0012.png"),
        	12 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0013.png"),
        	13 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0014.png"),
        	14 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0015.png"),
        	15 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0016.png"),
        	16 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0017.png"),
        	17 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0018.png"),
        	18 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0019.png"),
        	19 : preload("res://Assets/Sprites/Vanity/Female/Eyes/Eyes0020.png")
        }
        
        const Lips_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0008.png"),
        	8 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0009.png"),
        	9 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0010.png"),
        	10 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0011.png"),
        	11 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0012.png"),
        	12 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0013.png"),
        	13 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0014.png"),
        	14 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0015.png"),
        	15 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0016.png"),
        	16 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0017.png"),
        	17 : preload("res://Assets/Sprites/Vanity/Female/Lips/Lips0018.png")
        }
        
        const Nose_spreadsheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0008.png"),
        	8 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0009.png"),
        	9 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0010.png"),
        	10 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0011.png"),
        	11 : preload("res://Assets/Sprites/Vanity/Female/Nose/Nose0012.png")
        }
        
        const Eyebrows_spreadsheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0008.png"),
        	8 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0009.png"),
        	9 : preload("res://Assets/Sprites/Vanity/Female/Eyebrows/Eyebrows0010.png"),
        }
        
        const Earrings_spritesheet = {
        	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Earrings/Earrings0001.png")
        }
        
        #const BangsSide_spritesheet = {
        #	0 : preload()
        #}
        
        const Bangs_spritesheet = {
        	0 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0001.png"),
        	1 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0002.png"),
        	2 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0003.png"),
        	3 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0004.png"),
        	4 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0005.png"),
        	5 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0006.png"),
        	6 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0007.png"),
        	7 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0008.png"),
        	8 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0009.png"),
        	9 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0010.png"),
        	10 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0011.png"),
        	11 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0012.png"),
        	12 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0013.png"),
        	13 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0014.png"),
        	14 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0015.png"),
        	15 : preload("res://Assets/Sprites/Vanity/Female/Hair/Bangs-0016.png")
        }
        
        const Headgear_spritesheet = {
        	0 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0001Crown.png"),
        	1 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0002BigRibbon.png"),
        	2 : preload("res://Assets/Sprites/Items/Clothes/Female/Headgear/HG-0003Rose.png"),
        	3 : preload("res://Assets/Sprites/Items/Clothes/Unisex/Headgear/HG-F-0004Hood.png")
        }

        This is my Enemy.gd:

        extends "res://Source/Actors/Actor.gd"
        
        
        func _ready() -> void:
        	set_physics_process(false)
        	_velocity.x = -speed.x
        
        
        func _on_StompDetector_body_entered(body: Node) -> void:
        	if body.global_position.y > get_node("StompDetector").global_position.y:
        		return
        	get_node("CollisionShape2D").disabled = true
        	$AnimationPlayer.play("Enemy0001-Vine-Dead")
        	_velocity.x = 0
        	# This code is for delay for something
        	yield(get_tree().create_timer(0.2), "timeout")
        	queue_free()
        
        onready var position2D=$Position2D
        
        func _physics_process(delta: float) -> void:
        	_velocity.y += gravity * delta 
        	if is_on_wall():
        		_velocity.x *= -1.0
        		position2D.scale.x *= -1
        	_velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y

        And these are the errors. I don't know how to fix these. Since I only saw a tutorial on Youtube and I just followed it.

        I need to read my stuff more. To be honest, It's embarrassing I don't know what I am doing. Just trying to copy stuff. Still, I'm appreciative of all your help. Most of these came from Youtube. very thankful to their videos.

        I will try to sketch some rough draft of the character customization and paste it here so you all know what it is that I am trying to achieve with all these layers of customization.

        cybereality I checked on C++ error, maybe this could help to clarify? I don't know. For now I will try to restart and hope the issues will go away. Thank you very much.

        UPDATE: I put # on most of the preload scenes and my game went back to the nice fps with no lag. Hope I find a better code for this or solution. Even without the game debugging run test and just the game engine loading on that takes lots of time.

        10/14 update: working on kimono animations.will separate the kimono from the obi and make the obi as a belt later.

        • have brought errors down to 2.
        • still having problesm with the preloader which causes insane game lag.
        5 months later
        a year later

        After like almost 2 years. I finally got my laptop fixed. By myself as well. Hard to be a solo indie game developer and unemployed at the same time. This is a life project and I will take my time. Will try to recode the game to Godot 4. (Bit frustrating since the game originally started at 3.5, so there were lots of coding changes.)

        The link above to the unfinished demo is no longer available as the host was shut down.