The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates.

godotengine.org | Twitter

0 votes

So currently im instantiating the same ground Scene everytime, whereas I wan't to randomly spawn different scenes from a list.

Here is how my script looks right now:

const ground = preload("res://Scenes/Walls&Floors/Floor1.tscn")
const groundDistance = 250


var groundSpawnPosition = global_position

onready var player = get_parent().get_node("Player")
onready var floorContainer = get_parent().get_node("EnvironMent/Floors")


func _process(_delta):
    if groundSpawnPosition.distance_to(player.global_position) < 1000:
        spawnGround()



func spawnGround():
    var spawnInstance = ground.instance()
    floorContainer.add_child(spawnInstance)
    spawnInstance.global_position = Vector2(-380, groundSpawnPosition.y)
    groundSpawnPosition.y = groundSpawnPosition.y + groundDistance
Godot version 3.4.1 stable
in Engine by (81 points)

randomly scene instance ?

1 Answer

0 votes
Best answer
var rand - RandomNumberGenerator.new()
rand.randomize()

var scenelist = ["wallsandfloors","thepit","labirynth","blabla"]
var randompickup = scenelist[rand.randirange(0,scenelist.size()-1)]
var scene = load("res://Scenes/" + randompickup + ".tscn")
var inst = scene.instance()

You just have to keep your scenes in one directory

by (8,188 points)
selected by

Thank You!!!

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.