# Create Primitive Game Object

[Game Object](../index.md) / [Creation](index.md) / **Create Primitive Game Object**

## Description

Creates a primitive game object figure from a selection dropdown

## Parameters

| Name | Description |
| :--- | :---------- |
| Primitive | The primitive shape to create |
| Name | The name for the new game object |
| Set | Where the game object reference is optionally stored |

## Code

```cs
using System;
using UnityEngine;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Title("Create Primitive Game Object")]
    [Image(typeof(IconCubeSolid), ColorTheme.Type.TextLight)]
    
    [Description("Creates a primitive game object figure from a selection dropdown")]
    [Category("Game Object/Creation/Create Primitive")]
    
    [Parameter("Primitive", "The primitive shape to create")]
    [Parameter("Name", "The name for the new game object")]
    [Parameter("Set", "Where the game object reference is optionally stored")]
    
    [Serializable]
    public class InstructionCoreGameObjectCreatePrimitive : Instruction
    {
        [SerializeField] private PrimitiveType m_Primitive = PrimitiveType.Cube;
        [SerializeField] private GetString m_Name = new GetString();
        [SerializeField] private SetGameObject m_Set = new SetGameObject(new TypeGameObjectNoneSet());

        protected override string GetTitle(GameObject source) => $"{this.m_Set} = Create {this.m_Primitive}";

        protected override Awaitable Run(Args args)
        {
            string name = this.m_Name.Get(args);
            GameObject gameObject = GameObject.CreatePrimitive(this.m_Primitive);
            gameObject.name = name;
            
            this.m_Set.Set(gameObject, args);
            return Done;
        }
    }
}
```

