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

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.

        ami7mina 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.

        This sounds very familiar to me… have you ever tried to start a devblog with donate?

        ami7mina 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.)

        but WHY? godot 3.6 is still maintained, and 4 still has a couple months to go before it becomes final.

        also if you are starting again after 2 years, it would be a good idea to start over and reuse your assets, that way to get to analyze the code, see what works and what doesn't, and write something better. It will make your job easier in the long run.

          Jesusemora Why is it still maintaned? I'm confused. I thought 4 was done hmm.

          Yes, thank you. I am still using my hardworked assets. And will add more new assets since assets is all I can do being really new to this. I might need chatgpt for this frankly. Just for the help in coding.

          I think I started the hard way in making games by making hi-def 2d pixel art. lol

            ami7mina Why is it still maintaned? I'm confused. I thought 4 was done hmm.

            do you not read the blog???
            no, godot 4 is not done, it's still pretty much in development, missing features and with bugs to fix. godot 3 is the current final version.
            you use 3 if you need to release a game right now, you use 4 if you have 1-5 years of development or are learning.

            ami7mina Yes, thank you. I am still using my hardworked assets.

            You misunderstood. I mean, if you are moving the project to 4, start the code again from scratch so you can improve it. look at what you did wrong and what could be done better. like the player character and how it's coded or the way the menues are pulled.
            since most of your assets are done, you can better concentrate on the code.

            ami7mina And will add more new assets since assets is all I can do being really new to this.

            you have been at godot longer than me and are still "new"? I moved to godot last year. Have you really learnt nothing?

            ami7mina I might need chatgpt for this frankly. Just for the help in coding.

            oh. yeah, don't do that. don't do it. stupidGTP will just get you stuck on a bog of bad code that you will not understand. It will be better if you actually TRY and learn code.
            also stupidGTP can't code for godot 4, I'm warning you.

              Jesusemora no, godot 4 is not done, it's still pretty much in development, missing features and with bugs to fix. godot 3 is the current final version.
              you use 3 if you need to release a game right now, you use 4 if you have 1-5 years of development or are learning.

              Honestly final/unfinal are the wrong terms to use. The godot 3 branch is the most stable, 4 is considered to be "release stable" by now too but that shouldn't be misunderstood.

              It means it was stable enough for release to put it into the hands of the users for testing, but while it's probably fine to start using it to develop a new game the understanding should be that your game will take a minimum of year or two to develop and during that time as you find and report issues they will hopefully have been ironed out by the time your game is ready for release.

              If however you do not want to put up with all of that and just want to use a reasonably stable and maintained engine then that is precisely why godot 3 is still maintained, and even occasionally might still get a minor new feature or two! So there is no wrong choice here generally speaking however you should consider the wants and needs of your project and pick accordingly.

                Jesusemora Very slow learner. I'm a total noob. I think I might have to relearn Godot again. This is practically me relearning a new language. I haven't touched my game file for over a year. I need to remember it all. Which goes which. Thanks again..

                current game world. procedural generation -_-. I ask myself if I am a masochist for starting making such a difficult game when I know very little coding.

                Megalomaniak Thank you for that info. I guess I'll just stick to Godot 3 since my laptop hangs trying to convert a 3 game to a 4.