Procedural generation is not working well

extends Node3D
var start = preload("res://start.tscn")
var wall = preload("res://one_wall.tscn")
var corner = preload("res://corner.tscn")
var twall = preload("res://two_walls.tscn")
var light = preload("res://light.tscn")
var objs = [start, wall, twall, corner]
var size = [200, 200]
var spacing = 5
var toggle = false
func _ready() -> void:
	global.ingame = false
	generate_environment_l0()
func generate_environment_l0():
	randomize()
	for j in range(size[1]):
		for i in range(size[0]):
			var randy = randi_range(0, 1)
			var inst = objs[randy].instantiate()
			inst.position = Vector3(i * spacing - size[0] / 2, 0, j * spacing - size[1] / 2)
			inst.rotation.y = randi_range(0, 3) * deg_to_rad(90)
			add_child(inst)
	await get_tree().create_timer(1.0).timeout
	for j in range(size[1]):
		for i in range(size[0]):
			var inst = light.instantiate()
			inst.position = Vector3(i * spacing - size[0] / 2, 0, j * spacing - size[1] / 2)
			add_child(inst)
	global.ingame = true

it’s too open and the lights just don’t work at certain angles

Hi,

You really need to explain a bit more what your proc gen is supposed to do, and ideally attach some screenshots. For somebody who doesn’t know anything about your project, being “too open with lights not working” is not enough info to help.

this is not supposed to be like this

var objs = [start, wall, twall, corner]

#...
			var randy = randi_range(0, 1)
			var inst = objs[randy].instantiate()

start and wall are the only tiles that can be generated from your code. You would need a random range of (0, 3) to use all your tiles (or (0, objs.size() - 1) in case you are adding more later).

i just realised how big of a dumbass i am