GE Lua Documentation

Press F to search!

createObject

Definition


-- @/lua/ge/ge_utils.lua:411


--function testLicensePlate()
  --local v = playerVehicle
  --v:createUITexture("@licenseplate", "local://local/ui/simple/licenseplate.html", 128, 64, UI_TEXTURE_USAGE_AUTOMATIC, 1)
  --playerVehicle:queueJSUITexture("@licenseplate", 'setPlateText("ABCDE");')
  --v:destroyUITexture("@licenseplate")
--end


function createObject(className)
  if _G[className] == nil then
    log('E', 'scenetree', 'Unable to create object: unknown class: ' .. tostring(className))
    return nil
  end
  local obj = _G[className]()

  -- print('Creation object of class ' .. tostring(className) .. ' resulted in type ' .. tostring(getmetatable(obj).___type))

  obj:incRefCount()
  return obj
end

Callers

@/lua/ge/extensions/editor/assemblySpline/molecule.lua
  -- Create a temporary mesh to read the attachment points from.
  local obj = createObject('TSStatic')
  obj.cansave = false
local function getMeshBoundingBox(meshPath)
  local obj = createObject('TSStatic')
  obj.cansave = false
@/lua/ge/extensions/editor/roadDecorations.lua

  local decoration = createObject('TSStatic')
  decoration:setPosRot(pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w)

    group = createObject('SimGroup')
    group:registerObject(groupName)
@/lua/ge/extensions/scenario/scenarios.lua
  if(scenetree.thePlayer) then scenetree.thePlayer:delete() end
  local ScenarioObjectsGroup = createObject('SimGroup')
  if not ScenarioObjectsGroup then
@/lua/ge/extensions/gameplay/markers/inspectVehicleMarker.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/extensions/editor/tech/roadArchitect/staticMeshMgr.lua
  isAuditionMeshLive = true
  auditionMesh = createObject('TSStatic')
  auditionMesh:setField('shapeName', 0, availStaticMeshes[selectedMeshIdx].path)
@/lua/ge/extensions/core/audioRibbon.lua
local function createSfxEmitter(eventName)
    local emitter = createObject("SFXEmitter")
    emitter = Sim.upcast(emitter)
@/lua/ge/client/postFx/fxaa.lua
if not fxaaShaderData then
  local fxaaStateBlock = createObject("GFXStateBlockData")
  fxaaStateBlock:inheritParentFields(pfxDefaultStateBlock)

  local fxaaShaderData = createObject("ShaderData")
  fxaaShaderData.DXVertexShaderFile    = "shaders/common/postFx/fxaa/fxaaV.hlsl"

  local fxaaPostEffect = createObject("PostEffect")
  fxaaPostEffect.isEnabled = false
@/lua/ge/extensions/editor/api/material.lua

  local mat = createObject('Material')
  mat:setFilename(materialFilename)
@/lua/ge/extensions/flowgraph/nodes/recording/recordCamera.lua
function C:finishUp()
  local currentPath = createObject("SimPath")
  currentPath:registerObject("")
  for k,v in ipairs(self.path) do
    local currentMarker = createObject("Marker")
    currentMarker:registerObject("")
@/lua/ge/client/postFx/maskedScreenBlur.lua
if not screenBlurFX_YShader then
  screenBlurFX_YShader = createObject("ShaderData")
  screenBlurFX_YShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_Gausian_V.hlsl"
if not screenBlurFX_XShader then
  screenBlurFX_XShader = createObject("ShaderData")
  screenBlurFX_XShader:inheritParentFields(screenBlurFX_YShader)
if not screenBlurFX_stateBlock then
  screenBlurFX_stateBlock = createObject("GFXStateBlockData")
  screenBlurFX_stateBlock.zDefined = true
if not simpleBlendShader then
  simpleBlendShader = createObject("ShaderData")
  simpleBlendShader.DXVertexShaderFile    = "shaders/common/postFx/simpleBlendV.hlsl"
if not simpleBlendShaderStateBlock then
  simpleBlendShaderStateBlock = createObject("GFXStateBlockData")
  simpleBlendShaderStateBlock.zDefined = true
if not screenBlurFX then
  screenBlurFX = createObject("PostEffectMaskedBlur")
  screenBlurFX.isEnabled = true

  local screenBlurFX_YShader = createObject("PostEffect")
  screenBlurFX_YShader:setField("shader", 0, "ScreenBlurFX_YShader")

  local screenBlurFX_XShader = createObject("PostEffect")
  screenBlurFX_XShader:setField("shader", 0, "ScreenBlurFX_XShader")

  local simpleBlendShader = createObject("PostEffect")
  simpleBlendShader:setField("shader", 0, "SimpleBlendShader")
@/lua/ge/extensions/editor/api/decal.lua

  local template = createObject("DecalData")
  template:setField("Material", 0, "WarningMaterial")
@/lua/ge/client/postFx/chromaticLens.lua
if not pfxDefaultChromaticLensStateBlock then
  pfxDefaultChromaticLensStateBlock = createObject("GFXStateBlockData")
  pfxDefaultChromaticLensStateBlock.zDefined = true;
if not pfxChromaticLensShader then
  pfxChromaticLensShader = createObject("ShaderData")
  pfxChromaticLensShader.DXVertexShaderFile = "shaders/common/postFx/chromaticLens.hlsl"
if not chromaticLensPostFX then
  chromaticLensPostFX = createObject("PostEffect")
  chromaticLensPostFX:setField("renderTime", 0, "PFXAfterDiffuse")
@/lua/ge/extensions/flowgraph/nodes/scene/spawnTSStatic.lua

function C:createObject(objectName)
  local object =  createObject("TSStatic")
function C:createObject(objectName)
  local object =  createObject("TSStatic")
function C:workOnce()
  self:createObject()
  self.pinOut.created.value = true
@/lua/ge/extensions/gameplay/markers/walkingMarker.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/extensions/core/groundMarkerArrows.lua
    -- Create the group if there is none yet
    group = createObject("SimGroup")
    group:registerObject("arrowPool")
    for i = 0, 10 do
      local arrow = createObject('TSStatic')
      arrow:setField('shapeName', 0, "art/shapes/interface/s_mm_arrow_floating.dae")
@/lua/ge/extensions/flowgraph/nodes/scene/particleEmitter.lua

function C:createObject(objectName)
  local object =  createObject('ParticleEmitterNode')
function C:createObject(objectName)
  local object =  createObject('ParticleEmitterNode')
  object:setPosition(vec3(0, 0, 0))
    local nm = "_" .. tostring(os.time()) .. "_" .. self.id
    self.object.obj = self:createObject("particles_"..nm)
    --dump("Added Object")
@/lua/ge/extensions/scenario/raceMarkers/sideColumnMarker.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  self:clearMarkers()
  self.baseId  = self:createObject(baseShape,basePrefix..self.id):getId()
  self.leftId  = self:createObject(sideShape,sidesPrefix.."left"..self.id):getId()
  self.baseId  = self:createObject(baseShape,basePrefix..self.id):getId()
  self.leftId  = self:createObject(sideShape,sidesPrefix.."left"..self.id):getId()
  self.rightId = self:createObject(sideShape,sidesPrefix.."right"..self.id):getId()
  self.leftId  = self:createObject(sideShape,sidesPrefix.."left"..self.id):getId()
  self.rightId = self:createObject(sideShape,sidesPrefix.."right"..self.id):getId()
end
@/lua/ge/extensions/scenario/raceMarkers/sideMarker.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.base then
    self.base = self:createObject(baseShape,basePrefix..self.id)
    table.insert(self._ids, self.base:getId())
  if not self.sides then
    self.sides = self:createObject(sideShape,sidesPrefix..self.id)
    table.insert(self._ids, self.sides:getId())
  if not self.distant then
    self.distant = self:createObject(distantShape,distantPrefix..self.id)
    table.insert(self._ids, self.distant:getId())
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
  if not self.outlineId then
    outlineTmp = self:createObject(outlineMarker, outlinePrefix..self.numId)
    self.outlineId  = outlineTmp:getId()

function C:createObject(shapeName, objectName)
  local obj = createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local obj = createObject('TSStatic')
  obj:setField('shapeName', 0, shapeName)
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/extensions/editor/api/roadRiver.lua
local function createRoad(nodes, roadInfo)
  local road = createObject("DecalRoad")
  road:setField("improvedSpline", 0, "true")
  -- Create new mesh
  local mesh = createObject(type)
@/lua/ge/client/postFx/glow.lua
if not pfxGlowBlurVertShader then
  pfxGlowBlurVertShader = createObject("ShaderData")
  pfxGlowBlurVertShader.DXVertexShaderFile    = "shaders/common/postFx/glowBlurV.hlsl"
if not pfxGlowBlurHorzShader then
  pfxGlowBlurHorzShader = createObject("ShaderData")
  pfxGlowBlurHorzShader:inheritParentFields(pfxGlowBlurVertShader)
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxGlowCombineStateBlock = createObject("GFXStateBlockData")
  pfxGlowCombineStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not gammaPostFX then
  local gammaPostFX = createObject("PostEffect")
  -- Do not allow the glow effect to work in reflection

  local blurVertically = createObject("PostEffect")
  blurVertically:setField("shader", 0, "PFX_GlowBlurVertShader")

  local blurHorizontally = createObject("PostEffect")
  blurHorizontally:setField("shader", 0, "PFX_GlowBlurHorzShader")

  local upsampleAndCombine = createObject("PostEffect")
  upsampleAndCombine:setField("shader", 0, "PFX_PassthruShader")
@/lua/ge/extensions/editor/sidewalkSpline/populate.lua
    local uniqueName = util.generateUniqueName(toolPrefixStr .. " " .. splineIdx, toolPrefixStr)
    folder = createObject("SimGroup")
    folder:registerObject(uniqueName .. " - " .. spline.id)
    for i = existingCount + 1, neededCount do -- Add any extra meshes that are needed.
      local obj = createObject('TSStatic')
      obj:setField('shapeName', 0, meshPath)
@/lua/ge/extensions/editor/trafficManager.lua
  if not scenetree.objectExists(simGroupName) then
    local trafficSessionGroup = createObject("SimGroup")
    trafficSessionGroup:registerObject(simGroupName)
@/lua/common/jbeam/materials.lua
      if not scenetree.findObject(orgMat) then
        local mat = createObject("Material")
        mat.mapTo = orgMat
@/lua/ge/extensions/gameplay/markers/missionMarker.lua

function C:createObject(shapeName, objectName)
  local obj = createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local obj = createObject('TSStatic')
  obj:setField('shapeName', 0, shapeName)
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
  if not self.iconMeshId then
    local meshObj = self:createObject(iconMesh, iconMeshPrefix..self.id)
    self.iconMeshId = meshObj:getId()
@/lua/ge/extensions/scenario/raceMarkers/overhead.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.arrow then
    self.arrow = self:createObject(sideShape,sidesPrefix.."left"..self.id)
    table.insert(self._ids, self.arrow:getId())
@/lua/ge/extensions/flowgraph/nodes/environment/planet.lua

  local proc = createObject('ProceduralMesh')
  proc:registerObject(name)
@/lua/ge/extensions/editor/gen/world.lua

	local om = createObject("ProceduralMesh")
	om:setPosition(vec3(0,0,0))
W.daeReg = function(pth, tp)
	local obj = createObject('TSStatic')
	obj:setField('shapeName', 0, pth)

	local fo = createObject('ForestItemData')
	fo:setField('shapeFile', 0, pth)
		-- get world box
		local obj = createObject('TSStatic')
		obj:setField('shapeName', 0, p)
		-- forest setup
		local fo = createObject('ForestItemData')
		fo:setField('shapeFile', 0, p)
	local function f2m(pth, fid)
		local obj = createObject('TSStatic')
		obj:setField('shapeName', 0, pth)
			else
				forest = worldEditorCppApi.createObject("Forest")
				forest:registerObject(forestName)
	if not oedit then
		groupEdit = createObject("SimGroup")
		groupEdit:registerObject('edit')
    if not groupBat then
        groupBat = createObject("SimGroup")
        groupBat:registerObject('bat')
				local src = amesh[math.random(#amesh)]
				local om = createObject('TSStatic')
				om:setField('shapeName', 0, src)
--[[
				local om = createObject('TSStatic')
				om:setField('shapeName', 0, batdir..nm..'.dae')
				if not scenetree.findObject(nm) then
					local om = createObject('TSStatic')
					om:setField('shapeName', 0, batdir..nm..'.dae')
@/lua/ge/extensions/util/terrainGenerator.lua
    if not textureSet then
     textureSet = createObject('TerrainMaterialTextureSet')
    end
@/lua/ge/client/postFx.lua
if not pfxDefaultStateBlock then
  pfxDefaultStateBlock = createObject("GFXStateBlockData")
  pfxDefaultStateBlock.zDefined = true
if not pfxDefaultBlendStateBlock then
  pfxDefaultBlendStateBlock = createObject("GFXStateBlockData")
  pfxDefaultBlendStateBlock.zDefined = true
if not pfxPassthruShader then
  pfxPassthruShader = createObject("ShaderData")
  pfxPassthruShader.DXVertexShaderFile = "shaders/common/postFx/passthruP.hlsl"
if not alFormatBlend then
  alFormatBlend = createObject("PostEffect")
  alFormatBlend.isEnabled = false
@/lua/ge/extensions/editor/gen/network.lua
        groupEdit = scenetree.findObject('SimGroup')
        if not groupEdit then groupEdit = createObject('SimGroup') end
        groupEdit:registerObject('e_road')

        local rdm = createObject("ProceduralMesh")
--        rdm:setPosition(vec3(0, 0, 0))

    local rdm = createObject("ProceduralMesh")
    rdm:setPosition(vec3(0, 0, 0))
@/lua/ge/extensions/editor/buildingEditor.lua

	local rdm = createObject("ProceduralMesh")
	rdm:setPosition(vec3(0, 0, 0))

		local rdm = createObject("ProceduralMesh")
--        rdm:setPosition(vec3(0, 0, 0))

		local rdm = createObject("ProceduralMesh")
		rdm:setPosition(vec3(0, 0, 0))
]]
	local rdm = createObject("ProceduralMesh")
	rdm:setPosition(vec3(0, 0, 0))
	if false then
		local rdm2 = createObject("ProceduralMesh")
		rdm2:setPosition(vec3(0, 0, 0))
        lo('??_____________ edit_TOMAKE:')
--    	local go = createObject('edit')
      local go = createObject("SimGroup")
--    	local go = createObject('edit')
      local go = createObject("SimGroup")
      go:registerObject('edit')
	if scenetree.findObject("edit") == nil then
		local go = createObject("SimGroup")
		go:registerObject('edit')
@/lua/ge/extensions/tech/techCore.lua

  local proc = createObject('ProceduralMesh')
  if proc == nil then return nil end
@/lua/ge/client/renderManager.lua
  -- PostEffect copies the result to the backbuffer.
  local alFormatToken = createObject("RenderFormatToken")
  alFormatToken.enabled = false
if not alFormatTokenState then
  alFormatTokenState = createObject("GFXStateBlockData")
  local pfx_defaultstateblock = scenetree.findObject("PFX_DefaultStateBlock")
if not alFormatCopy then
  alFormatCopy = createObject("PostEffect")
  alFormatCopy.isEnabled = false
@/lua/ge/extensions/campaign/exploration.lua
local function createScenarioMarker(id, position, scale, color)
  local marker = createObject("TSStatic")
  marker.shapeName = 'art/shapes/interface/checkpoint_marker_base.dae'

  local scenarioTriggersGroup = createObject('SimGroup')
  if not scenarioTriggersGroup then

  local explorationGroup = createObject('SimGroup')
  if not explorationGroup then
@/lua/ge/client/canvas.lua
    -- Create the Canvas
    canvas = createObject("GuiCanvas")
    canvas.displayWindow = false
@/lua/ge/client/postFx/caustics.lua
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxCausticsStateBlock = createObject("GFXStateBlockData")
  pfxCausticsStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not pfxCausticsShader then
  pfxCausticsShader = createObject("ShaderData")
  pfxCausticsShader.DXVertexShaderFile    = "shaders/common/postFx/caustics/causticsP.hlsl"
if not causticsPFX then
  causticsPFX = createObject("PostEffect")
  causticsPFX.isEnabled = false
@/lua/ge/extensions/util/trackBuilder/splineTrack.lua

  local checkPoint = createObject('BeamNGWaypoint')
  checkPoint:setPosition(position)
  if not trackMarker then
    trackMarker = createObject('TSStatic')
    trackMarker:setField('shapeName', 0, "art/shapes/interface/checkpoint_marker_sphere.dae")
@/lua/ge/extensions/util/trackBuilder/segmentToProceduralMesh.lua
  if not segment.mesh then
    local splineObject = createObject("ProceduralMesh")
    splineObject:setPosition(vec3(0,0,0))
@/lua/ge/client/core.lua
if not corePassthruShaderVP then
  corePassthruShaderVP = createObject("ShaderData")
  corePassthruShaderVP.DXVertexShaderFile = "shaders/common/postFx/passthruV.hlsl"
  if not warningMaterial then
    warningMaterial = createObject("Material")
    warningMaterial:setField("diffuseMap", 0, "core/art/warnMat.dds")
  if not warnMatCubeMap then
    warnMatCubeMap = createObject("CubemapData")
    warnMatCubeMap:setField("cubeFace", 0, "core/art/warnMat.dds")
  if not blankWhite then
    blankWhite = createObject("Material")
    blankWhite:setField("diffuseMap", 0, "core/art/white.jpg")
  if not empty then
    empty = createObject("Material")
    empty:registerObject("Empty")
  if not coronaMat then
    coronaMat = createObject("Material")
    coronaMat.emissive = true
  if not blackSkyCubemap then
    blackSkyCubemap = createObject("CubemapData")
    blackSkyCubemap:setField("cubeFace", 0, "core/art/skies/blank/solidsky_black.jpg")
  if not blackSkyMat then
    blackSkyMat = createObject("Material")
    blackSkyMat:setField("cubemap", 0, "BlackSkyCubemap")
  if not blueSkyCubemap then
    blueSkyCubemap = createObject("CubemapData")
    blueSkyCubemap:setField("cubeFace", 0, "core/art/skies/blank/solidsky_blue.jpg")
  if not blueSkyMat then
    blueSkyMat = createObject("Material")
    blueSkyMat:setField("cubemap", 0, "BlueSkyCubemap")
  if not greySkyCubemap then
    greySkyCubemap = createObject("CubemapData")
    greySkyCubemap:setField("cubeFace", 0, "core/art/skies/blank/solidsky_grey.jpg")
  if not greySkyMat then
    greySkyMat = createObject("Material")
    greySkyMat:setField("cubemap", 0, "GreySkyCubemap")
  if not octahedronMat then
    octahedronMat = createObject("Material")
    octahedronMat:setField("mapTo", 0, "green")
  if not simpleConeMat then
    simpleConeMat = createObject("Material")
    simpleConeMat:setField("mapTo", 0, "blue")
  if not cameraMat then
    cameraMat = createObject("Material")
    cameraMat:setField("mapTo", 0, "CameraMat")
  if not noshapeNoShape then
    noshapeNoShape = createObject("Material")
    noshapeNoShape:setField("mapTo", 0, "NoShape")
  if not noshapetextLambert1 then
    noshapetextLambert1 = createObject("Material")
    noshapetextLambert1:setField("mapTo", 0, "lambert1")
  if not noshapetextNoshapeMat then
    noshapetextNoshapeMat = createObject("Material")
    noshapetextNoshapeMat:setField("mapTo", 0, "noshape_mat")
  if not noshapetextNoshapeMat then
    noshapetextNoshapeMat = createObject("Material")
    noshapetextNoshapeMat:setField("mapTo", 0, "portal_top")
  if not portal5PortalLightray then
    portal5PortalLightray = createObject("Material")
    portal5PortalLightray:setField("mapTo", 0, "portal_lightray")
  if not spawnArrow then
    spawnArrow = createObject("Material")
    spawnArrow:setField("mapTo", 0, "spawn_arrow")
  if not grid512BlackMat then
    grid512BlackMat = createObject("Material")
    grid512BlackMat:setField("mapTo", 0, "Grid512_Black_Mat")
  if not grid512BlueMat then
    grid512BlueMat = createObject("Material")
    grid512BlueMat:setField("mapTo", 0, "Grid512_Blue_Mat")
  if not grid512ForestGreenMat then
    grid512ForestGreenMat = createObject("Material")
    grid512ForestGreenMat:setField("mapTo", 0, "Grid512_ForestGreen_Mat")
  if not grid512ForestGreenMat then
    grid512ForestGreenMat = createObject("Material")
    grid512ForestGreenMat:setField("mapTo", 0, "Grid512_ForestGreenLines_Mat")
  if not grid512GreenMat then
    grid512GreenMat = createObject("Material")
    grid512GreenMat:setField("mapTo", 0, "Grid512_Green_Mat")
  if not grid512GreyMat then
    grid512GreyMat = createObject("Material")
    grid512GreyMat:setField("mapTo", 0, "Grid512_Grey_Mat")
  if not grid512GreyMat then
    grid512GreyMat = createObject("Material")
    grid512GreyMat:setField("mapTo", 0, "Grid512_GreyBase_Mat")
  if not grid512OrangeMat then
    grid512OrangeMat = createObject("Material")
    grid512OrangeMat:setField("mapTo", 0, "Grid512_Orange_Mat")
  if not grid512OrangeLinesMat then
    grid512OrangeLinesMat = createObject("Material")
    grid512OrangeLinesMat:setField("mapTo", 0, "Grid512_OrangeLines_Mat")
  if not grid512RedMat then
    grid512RedMat = createObject("Material")
    grid512RedMat:setField("mapTo", 0, "Grid512_Red_Mat")
  if not track_editor_grid then
    track_editor_grid = createObject("Material")
    track_editor_grid.mapTo = "track_editor_grid"
  if not track_editor_A_center then
    track_editor_A_center = createObject("Material")
    track_editor_A_center.mapTo = "track_editor_A_center"
  if not track_editor_A_border then
    track_editor_A_border = createObject("Material")
    track_editor_A_border.mapTo = "track_editor_A_border"
  if not track_editor_B_center then
    track_editor_B_center = createObject("Material")
    track_editor_B_center.mapTo = "track_editor_B_center"
  if not track_editor_B_border then
    track_editor_B_border = createObject("Material")
    track_editor_B_border.mapTo = "track_editor_B_border"
  if not track_editor_C_center then
    track_editor_C_center = createObject("Material")
    track_editor_C_center.mapTo = "track_editor_C_center"
  if not track_editor_C_border then
    track_editor_C_border = createObject("Material")
    track_editor_C_border.mapTo = "track_editor_C_border"
  if not track_editor_D_center then
    track_editor_D_center = createObject("Material")
    track_editor_D_center.mapTo = "track_editor_D_center"
  if not track_editor_D_border then
    track_editor_D_border = createObject("Material")
    track_editor_D_border.mapTo = "track_editor_D_border"
  if not track_editor_E_center then
    track_editor_E_center = createObject("Material")
    track_editor_E_center.mapTo = "track_editor_E_center"
  if not track_editor_E_border then
    track_editor_E_border = createObject("Material")
    track_editor_E_border.mapTo = "track_editor_E_border"
  if not track_editor_F_center then
    track_editor_F_center = createObject("Material")
    track_editor_F_center.mapTo = "track_editor_F_center"
  if not track_editor_F_border then
    track_editor_F_border = createObject("Material")
    track_editor_F_border.mapTo = "track_editor_F_border"
  if not track_editor_G_center then
    track_editor_G_center = createObject("Material")
    track_editor_G_center.mapTo = "track_editor_G_center"
  if not track_editor_G_border then
    track_editor_G_border = createObject("Material")
    track_editor_G_border.mapTo = "track_editor_G_border"
  if not track_editor_H_center then
    track_editor_H_center = createObject("Material")
    track_editor_H_center.mapTo = "track_editor_H_center"
  if not track_editor_H_border then
    track_editor_H_border = createObject("Material")
    track_editor_H_border.mapTo = "track_editor_H_border"

  local samplerClampLinear = createObject("GFXSamplerStateData")
  samplerClampLinear:setField("textureColorOp", 0, "GFXTOPModulate")

  local samplerClampPoint = createObject("GFXSamplerStateData")
  samplerClampPoint:setField("textureColorOp", 0, "GFXTOPModulate")

  local samplerWrapLinear = createObject("GFXSamplerStateData")
  samplerWrapLinear:setField("textureColorOp", 0, "GFXTOPModulate")

  local samplerWrapPoint = createObject("GFXSamplerStateData")
  samplerWrapPoint:setField("textureColorOp", 0, "GFXTOPModulate")
local function createShaderData()
  local particlesShaderData = createObject("ShaderData")
  particlesShaderData.DXVertexShaderFile = "shaders/common/particles/particlesV.hlsl"

  local offScreenShaderData = createObject("ShaderData")
  offScreenShaderData.DXVertexShaderFile = "shaders/common/particles/particleCompositeV.hlsl"
  -----------------------------------------------------------------------------
  local reflectBump = createObject("ShaderData")
  reflectBump.DXVertexShaderFile = "shaders/common/planarReflectBumpV.hlsl"

  local Reflect = createObject("ShaderData")
  Reflect.DXVertexShaderFile = "shaders/common/planarReflectV.hlsl"
  -----------------------------------------------------------------------------
  local fxFoliageReplicatorShader = createObject("ShaderData")
  fxFoliageReplicatorShader.DXVertexShaderFile = "shaders/common/fxFoliageReplicatorV.hlsl"
  -----------------------------------------------------------------------------
  local terrainBlendShader = createObject("ShaderData")
  terrainBlendShader.DXVertexShaderFile = "shaders/common/terrain/blendV.hlsl"
  ---------------------------------------------------------------------------
  local waterShader = createObject("ShaderData")
  waterShader.DXVertexShaderFile = "shaders/common/water/waterV.hlsl"

  local waterSampler = createObject("GFXSamplerStateData")
  waterSampler:setField("textureColorOp", 0, "GFXTOPModulate")

  local waterStateBlock = createObject("GFXStateBlockData")
  waterStateBlock.samplersDefined = true

  local underWaterStateBlock = createObject("GFXStateBlockData")
  underWaterStateBlock:inheritParentFields(waterStateBlock)

  local waterMat = createObject("CustomMaterial")
  waterMat:setField("sampler", "prepassTex", "#prepass[RT0]")
  ---------------------------------------------------------------------------
  local underWaterShader = createObject("ShaderData")
  underWaterShader.DXVertexShaderFile = "shaders/common/water/waterV.hlsl"

  local underwaterMat = createObject("CustomMaterial")
  underwaterMat:setField("sampler", "prepassTex", "#prepass[RT0]")
  ---------------------------------------------------------------------------
  local waterBasicShader = createObject("ShaderData")
  waterBasicShader.DXVertexShaderFile = "shaders/common/water/waterBasicV.hlsl"

  local waterBasicStateBlock = createObject("GFXStateBlockData")
  waterBasicStateBlock.samplersDefined = true

  local underWaterBasicStateBlock = createObject("GFXStateBlockData")
  underWaterStateBlock:inheritParentFields(waterBasicStateBlock)

  local waterBasicMat = createObject("CustomMaterial")
  waterBasicMat:setField("sampler", "reflectMap", "#reflectbuff")
  ---------------------------------------------------------------------------
  local underWaterBasicShader = createObject("ShaderData")
  underWaterBasicShader.DXVertexShaderFile = "shaders/common/water/waterBasicV.hlsl"

  local underwaterBasicMat = createObject("CustomMaterial")
  underwaterBasicMat:setField("sampler", "refractBuff", "$backbuff")
local function createScatterSkyData()
  local scatterSkySBData = createObject("GFXStateBlockData")
  scatterSkySBData.samplersDefined = true

  local scatterSkyShaderData = createObject("ShaderData")
  scatterSkyShaderData.DXVertexShaderFile = "shaders/common/scatterSkyV.hlsl"
  ------------------------------------------------------------------------------
  local cloudLayerShader = createObject("ShaderData")
  cloudLayerShader.DXVertexShaderFile = "shaders/common/cloudLayerV.hlsl"
  ------------------------------------------------------------------------------
  local basicCloudsShader = createObject("ShaderData")
  basicCloudsShader.DXVertexShaderFile = "shaders/common/basicCloudsV.hlsl"
  if not scenetree.findObject("PropSelectionCustomMat") then
    local shader = createObject("ShaderData")
    shader.DXVertexShaderFile = "shaders/common/vehicle/propselection.hlsl"

    local stateBlock = createObject("GFXStateBlockData")
    stateBlock.blendDefined = true

    local waterBasicMat = createObject("CustomMaterial")
    waterBasicMat:setField("shader", 0, "PropSelectionShader")
@/lua/ge/extensions/editor/assemblySpline/populate.lua
    for i = existingCount + 1, neededCount do
      local obj = createObject('TSStatic')
      obj:setField('shapeName', 0, meshPath)
    local uniqueName = util.generateUniqueName(toolPrefixStr .. " " .. splineIdx, toolPrefixStr)
    folder = createObject("SimGroup")
    folder:registerObject(uniqueName .. " - " .. spline.id)
@/lua/ge/client/objectsRequiredForStartup.lua
local platform = getConsoleVariable("$platform")
local cursor = createObject("GuiCursor")
cursor.renderOffset = Point2F(0, 0)
-- GuiDefaultProfile
local guiDefaultProfile = createObject("GuiControlProfile")
guiDefaultProfile.tab = false
if not guiSolidDefaultProfile then
guiSolidDefaultProfile = createObject("GuiControlProfile")
guiSolidDefaultProfile.opaque = true
if not guiTransparentProfile then
guiTransparentProfile = createObject("GuiControlProfile")
guiTransparentProfile.opaque = false
if not guiGroupBorderProfile then
guiGroupBorderProfile = createObject("GuiControlProfile")
guiGroupBorderProfile.border = 0
if not guiTabBorderProfile then
guiTabBorderProfile = createObject("GuiControlProfile")
guiTabBorderProfile.border = 0
-- GuiToolTipProfile
local guiToolTipProfile = createObject("GuiControlProfile")
guiToolTipProfile.fillColor   = ColorI(239, 237, 222, 255)
-- GuiModelessDialogProfile
local guiModelessDialogProfile = createObject("GuiControlProfile")
guiModelessDialogProfile.modal = false
-- GuiFrameSetProfile
local guiFrameSetProfile = createObject("GuiControlProfile")
guiFrameSetProfile.fillcolor = ColorI(255, 255, 255, 255)
-- GuiWindowProfile
local guiWindowProfile = createObject("GuiControlProfile")
guiWindowProfile.opaque = false
-- GuiInputCtrlProfile
local guiInputCtrlProfile = createObject("GuiControlProfile")
guiInputCtrlProfile.tab = true
-- GuiTextProfile
local guiTextProfile = createObject("GuiControlProfile")
guiTextProfile.justify = 0 -- AlignmentType enum in C++, 0 = LeftJustify

local guiTextRightProfile = createObject("GuiControlProfile")
guiTextRightProfile:inheritParentFields(guiTextProfile)
-- GuiAutoSizeTextProfile
local guiAutoSizeTextProfile = createObject("GuiControlProfile")
guiAutoSizeTextProfile.fontColor = ColorI(0, 0, 0, 255)
--GuiMediumTextProfile
local guiMediumTextProfile = createObject("GuiControlProfile")
guiMediumTextProfile:inheritParentFields(guiTextProfile)
--GuiBigTextProfile
local guiBigTextProfile = createObject("GuiControlProfile")
guiBigTextProfile:inheritParentFields(guiTextProfile)
--GuiMLTextProfile
local guiMLTextProfile = createObject("GuiControlProfile")
guiMLTextProfile.fontColorLink = ColorI(100, 100, 100, 255)
-- GuiTextArrayProfile
local guiTextArrayProfile = createObject("GuiControlProfile")
guiTextArrayProfile:inheritParentFields(guiTextProfile)
-- GuiTextEditProfile
local guiTextEditProfile = createObject("GuiControlProfile")
guiTextEditProfile.opaque = true
-- GuiProgressProfile
local guiProgressProfile = createObject("GuiControlProfile")
guiProgressProfile.opaque = false
-- GuiProgressBitmapProfile
local GuiProgressBitmapProfile = createObject("GuiControlProfile")
GuiProgressBitmapProfile.border = 0
-- GuiProgressTextProfile
local guiProgressTextProfile = createObject("GuiControlProfile")
guiProgressTextProfile.fontSize = 14
-- GuiButtonProfile
local guiButtonProfile = createObject("GuiControlProfile")
guiButtonProfile.opaque = true
-- GuiMenuButtonProfile
local guiMenuButtonProfile = createObject("GuiControlProfile")
guiMenuButtonProfile.opaque = true
-- GuiButtonTabProfile
local guiButtonTabProfile = createObject("GuiControlProfile")
guiButtonTabProfile.opaque = true
-- GuiCheckBoxProfile
local guiCheckBoxProfile = createObject("GuiControlProfile")
guiCheckBoxProfile.opaque = false
-- GuiScrollProfile
local guiScrollProfile = createObject("GuiControlProfile")
guiScrollProfile.opaque = true;
-- GuiOverlayProfile
local guiOverlayProfile = createObject("GuiControlProfile")
guiOverlayProfile.opaque = true;
-- GuiSliderProfile
local guiSliderProfile = createObject("GuiControlProfile")
guiSliderProfile.bitmap = "./images/slider"
-- GuiSliderBoxProfile
local guiSliderBoxProfile = createObject("GuiControlProfile")
guiSliderBoxProfile.bitmap = "./images/slider-w-box"
-- GuiPopupMenuItemBorder
local guiPopupMenuItemBorder = createObject("GuiControlProfile")
guiPopupMenuItemBorder:inheritParentFields(guiButtonProfile)
-- GuiPopUpMenuDefault
local guiPopUpMenuDefault = createObject("GuiControlProfile")
guiPopUpMenuDefault:inheritParentFields(guiDefaultProfile)
-- GuiPopUpMenuProfile
local guiPopUpMenuProfile = createObject("GuiControlProfile")
guiPopUpMenuProfile:inheritParentFields(guiPopUpMenuDefault)
-- GuiTabBookProfile
local guiTabBookProfile = createObject("GuiControlProfile")
guiTabBookProfile.fillColorHL = ColorI(100, 100, 100, 255)
-- GuiTabPageProfile
local guiTabPageProfile = createObject("GuiControlProfile")
guiTabPageProfile:inheritParentFields(guiDefaultProfile)
-- GuiConsoleProfile
local guiConsoleProfile = createObject("GuiControlProfile")
if platform == "macos" then
-- GuiConsoleTextProfile
local guiConsoleTextProfile = createObject("GuiControlProfile")
guiConsoleTextProfile.fontColor = ColorI(0, 0, 0, 255)
-- ConsoleScrollProfile
local consoleScrollProfile = createObject("GuiControlProfile")
consoleScrollProfile:inheritParentFields(guiScrollProfile)
-- ConsoleTextEditProfile
local consoleScrollProfile = createObject("GuiControlProfile")
consoleScrollProfile:inheritParentFields(guiTextEditProfile)
-- GuiRadioProfile
local guiRadioProfile = createObject("GuiControlProfile")
guiRadioProfile.fontSize = 14
-- GuiMonospace
local guiMonospace = createObject("GuiControlProfile")
guiMonospace:inheritParentFields(guiDefaultProfile)
-- GuiCEFProfile
local guiMonospace = createObject("GuiControlProfile")
guiMonospace.textOffset = Point2I(4, 2)
@/lua/ge/extensions/editor/gen/decal.lua

--local mat = createObject("Material")
--mat:setField("diffuseColor", 0, '1 1 1 0.9')
    if true and groupDecal == nil then
        groupDecal = createObject("SimGroup")
        groupDecal:registerObject('e_road')
    if true and groupLines == nil then
        groupLines = createObject("SimGroup")
        groupLines:registerObject('lines')
    if true and groupDecal == nil then
        groupDecal = createObject("SimGroup")
        groupDecal:registerObject('e_road')
    if true and groupLines == nil then
        groupLines = createObject("SimGroup")
        groupLines:registerObject('lines')
    if true and groupDecal == nil then
        groupDecal = createObject("SimGroup")
        groupDecal:registerObject('e_road')
    if true and groupLines == nil then
        groupLines = createObject("SimGroup")
        groupLines:registerObject('lines')
@/lua/ge/extensions/editor/tech/roadArchitect/roadMesh.lua
  -- Generate the procedural meshes for the sidewalk.
  local mesh = createObject('ProceduralMesh')
  mesh:registerObject('Sidewalk_' .. tostring(roadMeshIdx) .. '_' .. tostring(s))

  local mesh = createObject('ProceduralMesh')
  mesh:registerObject('Curb_' .. tostring(roadMeshIdx) .. '_' .. tostring(s))
  -- Generate the procedural meshes for the sidewalk.
  local mesh = createObject('ProceduralMesh')
  mesh:registerObject('Sidewalk_' .. tostring(roadMeshIdx) .. '_' .. tostring(s))

  local mesh = createObject('ProceduralMesh')
  mesh:registerObject('Curb_' .. tostring(roadMeshIdx) .. '_' .. tostring(s))
  -- Generate the procedural meshes for the road.
  local mesh = createObject('ProceduralMesh')
  mesh:registerObject('Bridge_' .. tostring(r.name))
@/lua/ge/client/postFx/turbulence.lua
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxTurbulenceStateBlock = createObject("GFXStateBlockData")
  pfxTurbulenceStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not pfxTurbulenceShader then
  pfxTurbulenceShader = createObject("ShaderData")
  pfxTurbulenceShader.DXVertexShaderFile = "shaders/common/postFx/turbulenceP.hlsl"
if not turbulenceFx then
  turbulenceFx = createObject("PostEffect")
  turbulenceFx.isEnabled = false
@/lua/ge/extensions/editor/tech/roadArchitect/roads.lua
        if not folder then
          folder = createObject("SimGroup")
          folder:registerObject("Road Architect - Bridge " .. tostring(r.name))
    if not roads[i].isBridge then
      rGroups[i] = createObject("SimGroup")
      rGroups[i]:registerObject("Road Architect - Road " .. tostring(i))
@/lua/ge/extensions/editor/gen/test.lua
--    scenetree.findObject(forestName):delete()
--    local forest = worldEditorCppApi.createObject("Forest")
--    forest:registerObject(forestName)
    scenetree.findObject(forestName):delete()
    local forest = worldEditorCppApi.createObject("Forest")
--    forest = scenetree.findObject('theForest')
			if not scenetree.findObject(nm) then
				local om = createObject('TSStatic')
				om:setField('shapeName', 0, dirname..nm..'.dae')
			for t,c in pairs({orange='1 0.5 0 1', green='0 1 0 1', blue='0 0 1 1',yellow='1 1 0 1'}) do
				mat = createObject("Material")
				mat:setField("diffuseColor", 0, c)
@/lua/ge/extensions/util/procTrack.lua

      local checkPoint = createObject('BeamNGWaypoint')
      checkPoint:setPosition(vec3(pos.x,pos.y,pos.z))
@/lua/ge/extensions/editor/forestEditor.lua
local function createForestBrushGroup(createNewBrush)
  var.forestBrushGroup = worldEditorCppApi.createObject("SimGroup")
  var.forestBrushGroup:registerObject("")
  if not forest then
    forest = worldEditorCppApi.createObject("Forest")
    forest:registerObject("")
@/lua/ge/extensions/editor/api/camera.lua
  if not bookmarksGroup then
    bookmarksGroup = worldEditorCppApi.createObject("SimGroup")
    bookmarksGroup:registerObject("CameraBookmarks")
  local bookmarksGroup = getCameraBookmarksGroup()
  local bookmark = worldEditorCppApi.createObject("CameraBookmark")
  bookmark:setField("datablock", 0, "CameraBookmarkMarker")
@/lua/ge/extensions/editor/meshSpline/import.lua
  -- Create a temporary mesh, so we can extract its world box and extents data.
  local obj = createObject('TSStatic')
  obj:setField('shapeName', 0, path)
    for _, entry in ipairs(data.deletedTSStatics) do
      local obj = createObject("TSStatic")
      obj:setField("shapeName", 0, entry.shapeName)
@/lua/ge/extensions/editor/decalSpline/populate.lua
    local folderNameId = Engine.generateUUID()
    local newFolder = createObject("SimGroup")
    newFolder:registerObject(string.format("%s - %s", uniqueName, folderNameId))
    if not templateIds[componentPath] then
      local template = createObject("DecalData")
      template:setField("texRows", 0, mapData.numRows)
@/lua/ge/client/lighting/basic/init.lua
if not bl_ProjectedShadowSBData then
  bl_ProjectedShadowSBData = createObject("GFXStateBlockData")
  bl_ProjectedShadowSBData.blendDefined = true
if not bl_ProjectedShadowShaderData then
  bl_ProjectedShadowShaderData = createObject("ShaderData")
  bl_ProjectedShadowShaderData.DXVertexShaderFile = "shaders/common/projectedShadowV.hlsl"
if not bl_ProjectedShadowMaterial then
  bl_ProjectedShadowMaterial = createObject("CustomMaterial")
  bl_ProjectedShadowMaterial:setField("sampler", "inputTex", "$miscbuff")
    -- Create render pass for projected shadow.
    local renderPassManager = createObject("RenderPassManager")
    renderPassManager:registerObject("BL_ProjectedShadowRPM")
    -- Create the mesh bin and add it to the manager.
    local meshBin = createObject("RenderFastMgr")
    renderPassManager:addManager(meshBin)
@/lua/ge/extensions/util/trackBuilder/proceduralPrimitives.lua

  local splineObject = createObject("ProceduralMesh")
  splineObject:setPosition(origin)
@/lua/ge/client/postFx/smaa.lua
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  smaaStateBlock = createObject("GFXStateBlockData")
  smaaStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not smaaEdgeDetectionShaderData then
  smaaEdgeDetectionShaderData = createObject("ShaderData")
  smaaEdgeDetectionShaderData.DXVertexShaderFile    = "shaders/common/postFx/smaa/smaa_edgeDetectionV.hlsl"
if not smaaBlendingWeightShaderData then
  smaaBlendingWeightShaderData = createObject("ShaderData")
  smaaBlendingWeightShaderData.DXVertexShaderFile    = "shaders/common/postFx/smaa/smaa_blendingWeightV.hlsl"
if not smaaNeighborhoodBlendingShaderData then
  smaaNeighborhoodBlendingShaderData = createObject("ShaderData")
  smaaNeighborhoodBlendingShaderData.DXVertexShaderFile    = "shaders/common/postFx/smaa/smaa_NeighborhoodBlendingV.hlsl"
if not smaaPostEffect then
  smaaPostEffect = createObject("PostEffect")
  smaaPostEffect.isEnabled = false

  local smaaPostEffect1 = createObject("PostEffect")
  smaaPostEffect1:inheritParentFields(smaaPostEffect)

  local smaaPostEffect2 = createObject("PostEffect")
  smaaPostEffect2:inheritParentFields(smaaPostEffect1)
@/lua/ge/extensions/editor/roadSpline/groupMgr.lua
  if not group.sceneTreeFolderId or not scenetree.findObjectById(group.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
    local folderNameId = Engine.generateUUID()
  -- Create a new folder for the group.
  local newFolder = createObject("SimGroup")
  newFolder:registerObject(string.format("%s - %s", uniqueName, id))
  if isCreateObject then
    local newFolder = createObject("SimGroup")
    newFolder:registerObject(string.format("%s - %s", group.name, group.id))
@/lua/ge/server/server.lua

  local LevelLoadingGroup = createObject("SimGroup")
  if not LevelLoadingGroup then
  --[[level cleanup group.  This is where run time components will reside.]]
  local misCleanup = createObject("SimGroup")
  if not misCleanup then
@/lua/ge/ge_utils.lua
    log('D', logTag, 'adding prefab '..objName)
    local p = createObject('Prefab')
    p.filename = String(objFileName)
@/lua/ge/extensions/core/cameraModes/relative.lua
  if not scenetree.relativecameralight then
    local l = createObject('PointLight')
    l.canSave  = false
@/lua/ge/extensions/editor/roadSpline/layerMgr.lua
local function createDecalRoadFromRange(layer, group, startIdx, endIdx, folder, startFade, endFade)
  local decalRoad = createObject("DecalRoad")
  decalRoad:setField("improvedSpline", 0, "true")
    if not drtest or drtest:getClassName() ~= "DecalRoad" then -- Even if there is an id, we need to ensure it is a decal road object.
      local newDecalRoad = createObject("DecalRoad")
      newDecalRoad:setField("improvedSpline", 0, "true")
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
          if not textureSet then
           textureSet = createObject('TerrainMaterialTextureSet')
          end
@/lua/ge/extensions/editor/sceneTree.lua
  end
  local grp = worldEditorCppApi.createObject("SimGroup")
  grp:registerObject("")
@/lua/ge/extensions/freeroam/bigMapMode.lua
    for i = 1, 4 do
      local fog = createObject('TSStatic')
      fog:setField('shapeName', 0, "art/shapes/interface/bigmap/bigmap_fog_b_small.dae")
  if not (iconRendererId and scenetree.objectExistsById(iconRendererId)) then
    local iconRenderer = createObject("BeamNGWorldIconsRenderer")
    iconRenderer:registerObject("");
@/lua/ge/extensions/editor/tech/roadArchitect/decals.lua
      local section = asphalts[name][s]
      asphalts[name][s].road = createObject("DecalRoad")
      local dRoad = asphalts[name][s].road

      asphalts[name][s].road = createObject("DecalRoad")
      local dRoad = asphalts[name][s].road

      decals[name].layers[ctrL] = createObject("DecalRoad")
      local layerDecal = decals[name].layers[ctrL]

      decals[name].layers[ctrL] = createObject("DecalRoad")
      local layerDecal = decals[name].layers[ctrL]

      decals[name].layers[ctrL] = createObject("DecalRoad")
      local layerDecal = decals[name].layers[ctrL]
        local templateIdx = #templates + 1
        templates[templateIdx] = createObject("DecalData")
        templates[templateIdx]:setField("renderPriority", 0, i)
@/lua/ge/extensions/scenario/raceMarkers/ringMarker.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.ring then
    self.ring = self:createObject(ringShape,meshPrefix..self.id)
    table.insert(self._ids, self.ring:getId())
@/lua/ge/client/lighting/advanced/shadowViz.lua
if not al_ShadowVisualizeShader then
  al_ShadowVisualizeShader = createObject("ShaderData")
  al_ShadowVisualizeShader.DXVertexShaderFile  = "shaders/common/guiMaterialV.hlsl"
if not al_ShadowVisualizeMaterial then
  al_ShadowVisualizeMaterial = createObject("CustomMaterial")
  al_ShadowVisualizeMaterial:setField("shader", 0, "AL_ShadowVisualizeShader")
@/lua/ge/extensions/editor/sidewalkSpline/kit.lua
  -- Create a temporary mesh to read the anchor points from.
  local obj = createObject('TSStatic')
  obj.cansave = false
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/extensions/scenario/busdriver.lua
local function createBusMarker(markerName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/position_marker.dae")
@/lua/ge/extensions/editor/tech/roadArchitect/tunnelMesh.lua
  -- Generate the procedural mesh.
  local proc = createObject('ProceduralMesh')
  proc:registerObject('Auto_Tunnel_' .. tonumber(meshIdx))
@/lua/ge/extensions/scenario/raceMarkers/cylinderMarker.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.base then
    self.base = self:createObject(baseShape,basePrefix..self.id)
    table.insert(self._ids, self.base:getId())
  if not self.cylinder then
    self.cylinder = self:createObject(cylinderShape,cylinderPrefix..self.id)
    table.insert(self._ids, self.cylinder:getId())
@/lua/ge/extensions/scenario/raceMarkers/singleHologramMarker.lua

function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  self:clearMarkers()
  self.columnId = self:createObject(columnShape, columnPrefix..self.id):getId()
end
@/lua/ge/extensions/flowgraph/nodes/scene/sevensegmentDisplay.lua
    for i = 1, self.data.count do
        local object = createObject("TSStatic")
        object.shapeName = self.data.shapeFolder .. '8' .. self.extension
function C:makeDot(offset, name)
    local object = createObject("TSStatic")
    object.shapeName = self.data.shapeFolder .. 'period' .. self.extension
@/lua/ge/extensions/editor/gen/exp_frame.lua
    if not groupEdit then
        groupEdit = createObject("SimGroup")
        groupEdit:registerObject('edit')
@/lua/ge/extensions/editor/roadSpline/import.lua
      local entry = deletedRoads[i]
      local obj = createObject("DecalRoad")
@/lua/ge/main.lua

  local mainEventManager = createObject("EventManager")
  if mainEventManager then
  -- TSStatic
  local obj =  createObject('TSStatic')
  obj:setField('shapeName', 0, '/art/shapes/collectible/s_collect_BNG.dae')

  obj = createObject('TSStatic')
  obj:setField('shapeName', 0, '/levels/smallgrid/art/shapes/misc/gm_cube_1m.dae')

  obj = createObject('TSStatic')
  obj:setField('shapeName', 0, '/levels/smallgrid/art/shapes/misc/gm_curb_01.dae')
  -- if not forest then
  --   forest = worldEditorCppApi.createObject("Forest")
  --   forest:registerObject("")
  --   -- -- Create the group
  --   -- local forestBrushGroup = worldEditorCppApi.createObject("SimGroup")
  --   -- forestBrushGroup:registerObject("")
@/lua/ge/client/postFx/fog.lua
if not fogPassShader then
  fogPassShader = createObject("ShaderData")
  fogPassShader.DXVertexShaderFile    = "shaders/common/postFx/fogP.hlsl"
if not fogPassStateBlock then
  fogPassStateBlock = createObject("GFXStateBlockData")
  fogPassStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not fogPostFx then
  fogPostFx = createObject("PostEffect")
  fogPostFx.isEnabled = true
if not underwaterFogPassShader then
  underwaterFogPassShader = createObject("ShaderData")
  underwaterFogPassShader.DXVertexShaderFile    = "shaders/common/postFx/underwaterFogP.hlsl"
if not underwaterFogPassStateBlock then
  underwaterFogPassStateBlock = createObject("GFXStateBlockData")
  underwaterFogPassStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not underwaterFogPostFx then
  underwaterFogPostFx = createObject("PostEffect")
  underwaterFogPostFx.oneFrameOnly = true
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
    if not groupEdit then
        groupEdit = createObject("SimGroup")
        groupEdit:registerObject('edit')
@/lua/ge/extensions/editor/gen/mesh.lua
	end)
	local mat = createObject("Material")
	mat.doubleSided = true

	local om = createObject("ProceduralMesh")
	local mnm = 'o_'..nm..'_'..cid

	road = createObject("ProceduralMesh")
	road:setPosition(pos)
@/lua/ge/extensions/core/trafficSignals.lua

  local obj = createObject('TSStatic')
  obj.useInstanceRenderData = false
    if not group then
      group = createObject('SimGroup')
      group:registerObject('AutoTrafficSignals')
@/lua/ge/extensions/editor/assetBrowser.lua

  local newObj = createObject('TSStatic')
  newObj:setPosition(objectPosition)
      if editor.assetDragDrop.data.type == 'mesh' then
        var.dragDropMesh = createObject('TSStatic')
        var.dragDropMesh:setField('shapeName', 0, editor.assetDragDrop.data.path)
@/lua/ge/extensions/editor/tech/roadArchitect/staticMesh.lua

      local static = createObject('TSStatic')
      static:setField('shapeName', 0, meshPath)
  local thisMesh = singleMeshes[r.name]
  local static = createObject('TSStatic')
  static:setField('shapeName', 0, layer.mat)
@/lua/ge/extensions/flowgraph/nodes/scene/collectionMarker.lua
    if not self.marker then
      local marker =  createObject('TSStatic')
      marker:setField('shapeName', 0, 'art/shapes/collectible/s_collect_BNG.dae')

      self.light =  worldEditorCppApi.createObject("PointLight")
@/lua/ge/extensions/util/trackBuilder/obstaclePlacer.lua
local function addObject(obstacleType)
  local obj =  createObject('TSStatic')
  obj:setField('shapeName', 0, shapeNames[obstacleType])
  while #segment.procObstacles < procCount do
    local proc = createObject("ProceduralMesh")
    proc:registerObject('procObstacle'..segment.index..'x'..#segment.procObstacles)
@/lua/ge/client/postFx/MotionBlurFx.lua
if not pfxMotionBlurShader then
  pfxMotionBlurShader = createObject("ShaderData")
  pfxMotionBlurShader.DXVertexShaderFile    = "shaders/common/postFx/motionBlurP.hlsl";
if not motionBlurFX then
  motionBlurFX = createObject("PostEffect")
  motionBlurFX.isEnabled = false
@/lua/ge/extensions/editor/raceEditor/tools.lua

  group = createObject('SimGroup')
  group:registerObject(groupName)
    if mode == 'dae' then
      decoration = createObject('TSStatic')
      decoration:setField('shapeName', 0, obj)
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua
    if boundary.vertices and #boundary.vertices >= 3 then
      local decalRoad = createObject("DecalRoad")
      decalRoad:setField("material", 0, "a_asphalt_01_a")
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/client/lighting/advanced/lightViz.lua
if not al_DepthVisualizeState then
  al_DepthVisualizeState = createObject("GFXStateBlockData")
  al_DepthVisualizeState.zDefined = true
if not al_DefaultVisualizeState then
  al_DefaultVisualizeState = createObject("GFXStateBlockData")
  al_DefaultVisualizeState.blendDefined = true
if not al_DepthVisualizeShader then
  al_DepthVisualizeShader = createObject("ShaderData")
  al_DepthVisualizeShader.DXVertexShaderFile = "shaders/common/lighting/advanced/dbgDepthVisualizeP.hlsl"
if not al_DepthVisualize then
  al_DepthVisualize = createObject("PostEffect")
  al_DepthVisualize:setField("shader", 0, "AL_DepthVisualizeShader")
if not al_NormalsVisualizeShader then
  al_NormalsVisualizeShader = createObject("ShaderData")
  al_NormalsVisualizeShader.DXVertexShaderFile  = "shaders/common/lighting/advanced/dbgNormalVisualizeP.hlsl"
if not al_NormalsVisualize then
  al_NormalsVisualize = createObject("PostEffect")
  al_NormalsVisualize:setField("shader", 0, "AL_NormalsVisualizeShader")
if not al_LightColorVisualizeShader then
  al_LightColorVisualizeShader = createObject("ShaderData")
  al_LightColorVisualizeShader.DXVertexShaderFile  = "shaders/common/lighting/advanced/dbgLightColorVisualizeP.hlsl"
if not al_LightColorVisualize then
  al_LightColorVisualize = createObject("PostEffect")
  al_LightColorVisualize:setField("shader", 0, "AL_LightColorVisualizeShader")
if not al_LightSpecularVisualizeShader then
  al_LightSpecularVisualizeShader = createObject("ShaderData")
  al_LightSpecularVisualizeShader.DXVertexShaderFile  = "shaders/common/lighting/advanced/dbgLightSpecularVisualizeP.hlsl"
if not al_LightSpecularVisualize then
  al_LightSpecularVisualize = createObject("PostEffect")
  al_LightSpecularVisualize:setField("shader", 0, "AL_LightSpecularVisualizeShader")
if not annotationVisualizeShader then
  annotationVisualizeShader = createObject("ShaderData")
  annotationVisualizeShader.DXVertexShaderFile  = "shaders/common/postFx/annotationViz.hlsl"
if not annotationVisualize then
  annotationVisualize = createObject("PostEffect")
  annotationVisualize:setField("shader", 0, "AnnotationVisualizeShader")
@/lua/ge/extensions/flowgraph/nodes/scene/spawnPrefab.lua

function C:createObject()
  local pos = vec3(0,0,0)
    if #self.objects < 1 then
      self:createObject()
      self.pinOut.created.value = true
@/lua/ge/client/postFx/lightRay.lua

  lightRayOccludeShader = createObject("ShaderData")
  lightRayOccludeShader.DXVertexShaderFile = "shaders/common/postFx/lightRay/lightRayOccludeP.hlsl"
if not lightRayShader then
  lightRayShader = createObject("ShaderData")
  lightRayShader.DXVertexShaderFile = "shaders/common/postFx/lightRay/lightRayP.hlsl"
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  lightRayStateBlock = createObject("GFXStateBlockData")
  lightRayStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not lightRayPostFX then
  lightRayPostFX = createObject("PostEffect")
  lightRayPostFX.isEnabled = false

  local rayShaderPFX = createObject("PostEffect")
  rayShaderPFX:setField("shader", 0, "LightRayShader")
@/lua/ge/extensions/render/hdr.lua
    if not postEffectBrightPassObj then
        postEffectBrightPassObj = createObject("PostEffectBrightPass")
        postEffectBrightPassObj:setField("renderTime", 0, "PFXBeforeBin")
    if not postEffectDownScaleObj then
        postEffectDownScaleObj = createObject("PostEffectDownScale")
        postEffectDownScaleObj:setField("targetScale", 0, "0.5 0.5")
    if not postEffectLuminance then
        postEffectLuminance = createObject("PostEffectLuminance")
        postEffectLuminance:registerObject("PostEffectLuminanceObject")
    if not postEffectCombinePass then
        postEffectCombinePass = createObject("PostEffectCombinePass")
        postEffectCombinePass:registerObject("PostEffectCombinePassObject")
@/lua/ge/extensions/editor/shapeEditor.lua
    highlightMaterialName = "tmp_spHighlight_"..randomASCIIString(8)
    highlightMaterial = createObject('Material')
    highlightMaterial.canSave = false
@/lua/ge/client/postFx/GammaPostFX.lua
if not gammaShader then
  gammaShader = createObject("ShaderData")
  gammaShader.DXVertexShaderFile = "shaders/common/postFx/gammaP.hlsl"
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  gammaStateBlock = createObject("GFXStateBlockData")
  gammaStateBlock:inheritParentFields(pfxDefaultStateBlock)
if not gammaPostFX then
  gammaPostFX = createObject("PostEffect")
  gammaPostFX.isEnabled = false
@/lua/ge/extensions/editor/meshSpline/populate.lua
    local meshId = splineName .. "_" .. componentType .. "_" .. i
    local mesh = createObject('TSStatic')
    mesh.cansave = true
    local uniqueName = util.generateUniqueName(baseName, toolPrefixStr)
    folder = createObject("SimGroup")
    folder:registerObject(string.format("%s - %s", uniqueName, spline.id))
    local meshId = string.format('%s_StartCap', splineName)
    local mesh = createObject('TSStatic')
    mesh.cansave = true
    local meshId = string.format('%s_EndCap', splineName)
    local mesh = createObject('TSStatic')
    mesh.cansave = true
@/lua/ge/extensions/editor/api/dynamicDecals.lua

      local mat = createObject('Material')
      mat:assignFieldsFromObject(dynDecalMaterial)
@/lua/ge/extensions/scenario/raceMarkers/sideHologramMarker.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  self:clearMarkers()
  -- self.baseId  = self:createObject(baseShape,basePrefix..self.id):getId()
  self.leftId  = self:createObject(pillarShapeLeft,sidesPrefix.."left"..self.id):getId()
  -- self.baseId  = self:createObject(baseShape,basePrefix..self.id):getId()
  self.leftId  = self:createObject(pillarShapeLeft,sidesPrefix.."left"..self.id):getId()
  self.rightId = self:createObject(pillarShapeRight,sidesPrefix.."right"..self.id):getId()
  self.leftId  = self:createObject(pillarShapeLeft,sidesPrefix.."left"..self.id):getId()
  self.rightId = self:createObject(pillarShapeRight,sidesPrefix.."right"..self.id):getId()
  self.leftColumnId = self:createObject(topColumnLeft,sidesPrefix.."leftColumn"..self.id):getId()
  self.rightId = self:createObject(pillarShapeRight,sidesPrefix.."right"..self.id):getId()
  self.leftColumnId = self:createObject(topColumnLeft,sidesPrefix.."leftColumn"..self.id):getId()
  self.rightColumnId = self:createObject(topColumnRight,sidesPrefix.."rightColumn"..self.id):getId()
  self.leftColumnId = self:createObject(topColumnLeft,sidesPrefix.."leftColumn"..self.id):getId()
  self.rightColumnId = self:createObject(topColumnRight,sidesPrefix.."rightColumn"..self.id):getId()
  self.leftConeId = self:createObject(bottomConeShape,sidesPrefix.."leftCone"..self.id):getId()
  self.rightColumnId = self:createObject(topColumnRight,sidesPrefix.."rightColumn"..self.id):getId()
  self.leftConeId = self:createObject(bottomConeShape,sidesPrefix.."leftCone"..self.id):getId()
  self.rightConeId = self:createObject(bottomConeShape,sidesPrefix.."rightCone"..self.id):getId()
  self.leftConeId = self:createObject(bottomConeShape,sidesPrefix.."leftCone"..self.id):getId()
  self.rightConeId = self:createObject(bottomConeShape,sidesPrefix.."rightCone"..self.id):getId()
  self.leftCylinderId = self:createObject(cylinderShape,sidesPrefix.."leftCylinder"..self.id):getId()
  self.rightConeId = self:createObject(bottomConeShape,sidesPrefix.."rightCone"..self.id):getId()
  self.leftCylinderId = self:createObject(cylinderShape,sidesPrefix.."leftCylinder"..self.id):getId()
  self.rightCylinderId = self:createObject(cylinderShape,sidesPrefix.."rightCylinder"..self.id):getId()
  self.leftCylinderId = self:createObject(cylinderShape,sidesPrefix.."leftCylinder"..self.id):getId()
  self.rightCylinderId = self:createObject(cylinderShape,sidesPrefix.."rightCylinder"..self.id):getId()
  self.arrowId = self:createObject(arrowShape,sidesPrefix.."arrow"..self.id):getId()
  self.rightCylinderId = self:createObject(cylinderShape,sidesPrefix.."rightCylinder"..self.id):getId()
  self.arrowId = self:createObject(arrowShape,sidesPrefix.."arrow"..self.id):getId()
end
@/lua/ge/extensions/freeroam/facilities/fuelPrice.lua
  obj:postApply()
  local clone =  createObject('TSStatic')
  -- clone:preApply()
  if not groupLC then
    groupLC = createObject("SimGroup")
    groupLC:registerObject("fuelPrice_localCopies")
@/lua/ge/extensions/editor/createObjectTool.lua
  if not classname then return end
  local obj = worldEditorCppApi.createObject(classname)
  local newName = getNextNumberedName(classname)
local function createObjectRedo(actionData)
  local obj = worldEditorCppApi.createObject(actionData.classname)
local function createCustomClassObject(clsName, parentNode)
  local obj = worldEditorCppApi.createObject(clsName)
  if obj then
  if not grp then
    grp = worldEditorCppApi.createObject("SimGroup")
    grp:registerObject("")
  if not grp then
    grp = worldEditorCppApi.createObject("SimGroup")
    grp:registerObject("")
@/gameplay/missionTypes/scatterPickup/customNodes/scatterStuffInZonesNode.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);
@/lua/ge/extensions/util/compileMeshes.lua
  if not cleanOnly then
    createObject("SimGroup"):registerObject('ObjectsTempGroup')
    SimObject.setDefaultAddGroup('ObjectsTempGroup')
@/lua/ge/extensions/gameplay/crawl/boundary.lua
  -- Create a new group for boundary markers
  local markerGroup = createObject("SimGroup")
  markerGroup:registerObject(Sim.getUniqueName("BoundaryMarkers"))
    local name = Sim.getUniqueName("BoundaryFlag_" .. i)
    local marker = createObject('TSStatic')
    marker:setField('shapeName', 0, flagMeshPath)
@/lua/ge/extensions/editor/api/dataBlock.lua
local function createDataBlock(name, type, copyFrom, filename)
  local dataBlock = worldEditorCppApi.createObject(type)
@/lua/ge/extensions/scenario/raceMarkers/crawlMarker.lua

function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.arrow then
    self.arrow = self:createObject(arrowShape,arrowPrefix..self.id)
    local initialScale = self.baseArrowScale or 2.0
  if not self.flagLeft then
    self.flagLeft = self:createObject(flagShape,flagPrefix.."left_"..self.id)
    table.insert(self._ids, self.flagLeft:getId())
  if not self.flagRight then
    self.flagRight = self:createObject(flagShape,flagPrefix.."right_"..self.id)
    table.insert(self._ids, self.flagRight:getId())
  if not self.columnId then
    local columnObj = self:createObject(columnShape, columnPrefix..self.id)
    self.columnId = columnObj:getId()
@/lua/ge/extensions/editor/roadTemplateEditor.lua
  -- Create the decoration object
  local decoObject = createObject('SimGroup')
  decoObject:registerObject("deco" .. tostring(decoCounter))
@/lua/ge/client/postFx/ssao.lua

  ssaoPostFx = createObject("PostEffectSSAO")
if not ssaoVizPostFx then
  ssaoVizPostFx = createObject("PostEffectSSAO")
  ssaoVizPostFx.allowReflectPass = false
if not ssaoPowTableShader then
  ssaoPowTableShader = createObject("ShaderData")
  ssaoPowTableShader.DXVertexShaderFile    = "shaders/common/postFx/ssao/SSAO_PowerTable_V.hlsl"
if not ssaoPowTablePostFx then
  ssaoPowTablePostFx = createObject("PostEffect")
  ssaoPowTablePostFx:setField("shader", 0, "SSAOPowTableShader")
@/lua/ge/client/postFx/dof.lua
if not pfxDefaultDOFStateBlock then
  pfxDefaultDOFStateBlock = createObject("GFXStateBlockData")
  pfxDefaultDOFStateBlock.zDefined = true
if not pfxDOFCalcCoCStateBlock then
  pfxDOFCalcCoCStateBlock = createObject("GFXStateBlockData")
  pfxDOFCalcCoCStateBlock.zDefined = true
if not pfxDOFDownSampleStateBlock then
  pfxDOFDownSampleStateBlock = createObject("GFXStateBlockData")
  pfxDOFDownSampleStateBlock.zDefined = true
if not pfxDOFBlurStateBlock then
  pfxDOFBlurStateBlock = createObject("GFXStateBlockData")
  pfxDOFBlurStateBlock.zDefined = true
if not pfxDOFFinalStateBlock then
  pfxDOFFinalStateBlock = createObject("GFXStateBlockData")
  pfxDOFFinalStateBlock.zDefined = true
if not pfxDOFDownSampleShader then
  pfxDOFDownSampleShader = createObject("ShaderData")
  pfxDOFDownSampleShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_DownSample_V.hlsl"
if not pfxDOFBlurYShader then
  pfxDOFBlurYShader = createObject("ShaderData")
  pfxDOFBlurYShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_Gausian_V.hlsl"
if not pfxDOFBlurXShader then
  pfxDOFBlurXShader = createObject("ShaderData")
  pfxDOFBlurXShader:inheritParentFields(pfxDOFBlurYShader)
if not pfxDOFCalcCoCShader then
  pfxDOFCalcCoCShader = createObject("ShaderData")
  pfxDOFCalcCoCShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_CalcCoC_V.hlsl"
if not pfxDOFSmallBlurShader then
  pfxDOFSmallBlurShader = createObject("ShaderData")
  pfxDOFSmallBlurShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_SmallBlur_V.hlsl"
if not pfxDOFFinalShader then
  pfxDOFFinalShader = createObject("ShaderData")
  pfxDOFFinalShader.DXVertexShaderFile    = "shaders/common/postFx/dof/DOF_Final_V.hlsl"
if not dofPostEffect then
  dofPostEffect = createObject("PostEffect")
  dofPostEffect.isEnabled = false

  local dofBlurY = createObject("PostEffect")
  dofBlurY:setField("shader", 0, "PFX_DOFBlurYShader")

  local dofBlurX = createObject("PostEffect")
  dofBlurX:setField("shader", 0, "PFX_DOFBlurXShader")

  local dofCalcCoC = createObject("PostEffect")
  dofCalcCoC:setField("shader", 0, "PFX_DOFCalcCoCShader")

  local dofSmallBlur = createObject("PostEffect")
  dofSmallBlur:setField("shader", 0, "PFX_DOFSmallBlurShader")

  local dofFinalPFX = createObject("PostEffect")
  dofFinalPFX:setField("shader", 0, "PFX_DOFFinalShader")
@/lua/ge/extensions/editor/sidewalkSpline/splineMgr.lua
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
    local folderNameId = Engine.generateUUID()
  -- Create a new scene tree folder for the sidewalk spline.
  local newFolder = createObject("SimGroup")
  newFolder:registerObject(string.format("%s - %s", uniqueName, id))
    local uniqueName = util.generateUniqueName(spline.name, toolPrefixStr)
    local newFolder = createObject("SimGroup")
    newFolder:registerObject(string.format("%s - %s", uniqueName, spline.id))
@/lua/ge/extensions/util/trackBuilder/markers.lua
local function addBankMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addHeightMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
  local index = #list
  local markerRight =  createObject('TSStatic')
  markerRight:setField('shapeName', 0, "art/shapes/interface/checkpoint_marker_sphere.dae")

  local markerLeft =  createObject('TSStatic')
  markerLeft:setField('shapeName', 0, "art/shapes/interface/checkpoint_marker_sphere.dae")
local function addCenterMeshMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addLeftMeshMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addRightMeshMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addCheckpointMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/checkpoint_marker_sphere.dae")
local function addRightWallMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addLeftWallMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
local function addCeilingMeshMarker(list)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/track_editor_marker.dae")
@/lua/ge/extensions/flowgraph/nodes/scene/storeStatics.lua

function C:createObject(pos, rot, scl, shape)
  local object =  createObject("TSStatic")
function C:createObject(pos, rot, scl, shape)
  local object =  createObject("TSStatic")
  for _, o in ipairs(self.storedObjects) do
    o.currentId = self:createObject(o.pos, o.rot, o.scl, o.shapeName)
    table.insert(ids, o.currentId)
@/lua/ge/client/postFx/flash.lua
if not pfxFlashShader then
  pfxFlashShader = createObject("ShaderData")
  pfxFlashShader.DXVertexShaderFile    = "shaders/common/postFx/flashP.hlsl"
if not flashFx then
  flashFx = createObject("PostEffect")
  flashFx.isEnabled = false
@/lua/ge/extensions/editor/objectToSplineEditor.lua
  if params.useSimGroup then
    newGroup = createObject("SimGroup")
    newGroup:registerObject(Sim.getUniqueName("SplineObjects"))
@/lua/ge/extensions/flowgraph/nodes/scene/spawnLight.lua

function C:createObject(objectName)
  local object =  worldEditorCppApi.createObject("SpotLight")
function C:createObject(objectName)
  local object =  worldEditorCppApi.createObject("SpotLight")
  if #self.objects < self.data.maxObjectCount then
    self:createObject()
    self.pinOut.created.value = true
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
    if not groupEdit then
        groupEdit = createObject("SimGroup")
        groupEdit:registerObject('edit')
    if not groupEdit then
        groupEdit = createObject("SimGroup")
        groupEdit:registerObject('edit')
            scenetree.findObject('edit'):deleteAllObjects()
            om = createObject('TSStatic')
            om:setField('shapeName', 0, p)
@/gameplay/missionTypes/scatterPickup/customNodes/scatterPrefabSetupNode.lua
    for listIdx, point in ipairs(points) do
      local object =  createObject("TSStatic")
      local p = point.pos
@/lua/ge/extensions/editor/assemblySpline/splineMgr.lua
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
    local folderNameId = Engine.generateUUID()
  -- Create a new scene tree folder for the assembly spline.
  local newFolder = createObject("SimGroup")
  newFolder:registerObject(string.format("%s - %s", uniqueName, id))
    -- Create a new scene tree folder for the assembly spline.
    local newFolder = createObject("SimGroup")
    newFolder:registerObject(string.format("%s - %s", uniqueName, spline.id))
@/lua/ge/extensions/util/trackBuilder/multiTrackMerger.lua

  local splineObject = createObject("ProceduralMesh")
  splineObject:setPosition(vec3(0,0,0))
@/lua/ge/extensions/editor/api/objectHistoryActions.lua
  end
  local obj = createObject(actionData.className)
  obj:registerObject(actionData.name)
@/lua/ge/extensions/editor/assemblySpline/import.lua
  for _, entry in ipairs(backup) do
    local obj = createObject("TSStatic")
    obj:setField("shapeName", 0, entry.shapeName)
@/lua/ge/client/postFx/edgeAA.lua
if not pfxDefaultEdgeAAStateBlock then
  pfxDefaultEdgeAAStateBlock = createObject("GFXStateBlockData")
  pfxDefaultEdgeAAStateBlock.zDefined = true
if not pfxEdgeAADetectShader then
  pfxEdgeAADetectShader = createObject("ShaderData")
  pfxEdgeAADetectShader.DXVertexShaderFile    = "shaders/common/postFx/edgeaa/edgeDetectP.hlsl"
if not pfxEdgeAAShader then
  pfxEdgeAAShader = createObject("ShaderData")
  pfxEdgeAAShader.DXVertexShaderFile    = "shaders/common/postFx/edgeaa/edgeAAV.hlsl"
if not pfxEdgeAADebugShader then
  pfxEdgeAADebugShader = createObject("ShaderData")
  pfxEdgeAADebugShader.DXVertexShaderFile    = "shaders/common/postFx/edgeaa/dbgEdgeDisplayP.hlsl"
if not edgeDetectPostEffect then
  edgeDetectPostEffect = createObject("PostEffect")
  edgeDetectPostEffect.isEnabled = true
if not edgeDetectPostEffect then
  edgeDetectPostEffect = createObject("PostEffect")
  edgeDetectPostEffect:setField("renderTime", 0, "PFXAfterDiffuse")
if not debug_EdgeAAPostEffect then
  debug_EdgeAAPostEffect = createObject("PostEffect")
  debug_EdgeAAPostEffect:setField("renderTime", 0, "PFXAfterDiffuse")
@/lua/ge/extensions/editor/particleEditor.lua

  editableEmitterNode = worldEditorCppApi.createObject("ParticleEmitterNode")
  editableEmitterNode:setField("dataBlock", 0, "lightExampleEmitterNodeData1")
@/lua/ge/extensions/editor/toolUtilities/meshAuditionMgr.lua
  isAuditionMeshLive = true
  auditionMesh = createObject('TSStatic')
  auditionMesh:setField('shapeName', 0, path)
@/lua/ge/client/init.lua

  local onlyGui = createObject("GameViewportCtrl")
  onlyGui.forceFOV = 0
  -- DO NOT RENAME maincef, its name is hardcoded in c++
  local maincef = createObject("CefGui")
  if maincef ~= nil then
@/lua/ge/spawn.lua
  if not vehGroup then
    vehGroup = createObject('SimGroup')
    if vehGroup then
local function spawnVehicle(model, partConfig, pos, rot, options)
  local veh = createObject("BeamNGVehicle")
  if not veh then
  ]]
  playerSP = createObject('SpawnSphere')
  if not playerSP then
  if not cam then
    cam = createObject('Camera')
    cam.dataBlock = scenetree.findObject("Observer")
@/lua/ge/extensions/editor/meshSpline/splineMgr.lua
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
    local folderNameId = Engine.generateUUID()
  -- Create a new folder for the mesh spline.
  local newFolder = createObject("SimGroup")
  newFolder:registerObject(string.format("%s - %s", uniqueName, id))
    -- Create a new scene tree folder for the mesh spline.
    local newFolder = createObject("SimGroup")
    newFolder:registerObject(string.format("%s - %s", uniqueName, spline.id))
@/lua/ge/extensions/editor/terrainAndRoadImporter.lua
local function createDecalRoad(nodes, widths, material, folder)
  local dRoad = createObject("DecalRoad")
  --dRoad:setField("improvedSpline", 0, "true")
  -- Import the roads.
  local sceneTreeFolder = createObject("SimGroup")
  sceneTreeFolder:registerObject(folderName)
@/lua/ge/extensions/editor/toolUtilities/util.lua
local function getMeshBox(meshPath)
  local obj = createObject('TSStatic')
  obj.cansave = false
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua
function C:createCornerMarker(markerName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, "art/shapes/interface/position_marker.dae")
    local name = "rectMarkerTrigger_" .. tostring(os.time()) .. "_" .. self.id
    local checkPoint = createObject('BeamNGTrigger')
    checkPoint.loadMode = 1
@/lua/ge/client/lighting/advanced/shaders.lua
if not al_VectorLightState then
  al_VectorLightState = createObject("GFXStateBlockData")
  al_VectorLightState.blendDefined = true
if not al_VectorLightShader then
  al_VectorLightShader = createObject("ShaderData")
  al_VectorLightShader.DXVertexShaderFile    = "shaders/common/lighting/advanced/farFrustumQuadV.hlsl"
if not al_VectorLightMaterial then
  al_VectorLightMaterial = createObject("CustomMaterial")
  al_VectorLightMaterial:setField("shader", 0, "AL_VectorLightShader")
if not al_ConvexLightState then
  al_ConvexLightState = createObject("GFXStateBlockData")
  al_ConvexLightState.blendDefined = true;
if not al_PointLightShader then
  al_PointLightShader = createObject("ShaderData")
  al_PointLightShader.DXVertexShaderFile = "shaders/common/lighting/advanced/convexGeometryV.hlsl"
if not al_PointLightMaterial then
  al_PointLightMaterial = createObject("CustomMaterial")
  al_PointLightMaterial:setField("shader", 0, "AL_PointLightShader")
  if not al_SpotLightShader then
  al_SpotLightShader = createObject("ShaderData")
  al_SpotLightShader.DXVertexShaderFile = "shaders/common/lighting/advanced/convexGeometryV.hlsl"
if not al_SpotLightMaterial then
  al_SpotLightMaterial = createObject("CustomMaterial")
  al_SpotLightMaterial:setField("shader", 0, "AL_SpotLightShader")
if not al_DefaultPrePassMaterial then
  al_DefaultPrePassMaterial = createObject("Material")
  -- We need something in the first pass else it
if not al_DefaultShadowMaterial then
  al_DefaultShadowMaterial = createObject("Material")
  -- We need something in the first pass else it
if not al_ParticlePointLightShader then
  al_ParticlePointLightShader = createObject("ShaderData")
  al_ParticlePointLightShader.DXVertexShaderFile = "shaders/common/lighting/advanced/particlePointLightV.hlsl"
if not al_ParticlePointLightMaterial then
  al_ParticlePointLightMaterial = createObject("CustomMaterial")
  al_ParticlePointLightMaterial:setField("shader", 0, "AL_ParticlePointLightShader")
@/lua/ge/extensions/editor/biomeTool.lua
  if not forest then
    forest = worldEditorCppApi.createObject("Forest")
    forest:registerObject("")
@/lua/ge/client/lighting/shadowMaps/init.lua
if not blurDepthShader then
  blurDepthShader = createObject("ShaderData")
  blurDepthShader.DXVertexShaderFile = "shaders/common/lighting/shadowMap/boxFilterV.hlsl"
@/lua/ge/client/lighting/basic/shadowFilter.lua
if not bl_ShadowFilterShaderV then
  bl_ShadowFilterShaderV = createObject("ShaderData")
  bl_ShadowFilterShaderV.DXVertexShaderFile = "shaders/common/lighting/basic/shadowFilterV.hlsl"
if not bl_ShadowFilterShaderH then
  bl_ShadowFilterShaderH = createObject("ShaderData")
  bl_ShadowFilterShaderH:inheritParentFields(bl_ShadowFilterShaderV)
  local pfx_defaultstateblock = scenetree.findObject("PFX_DefaultStateBlock")
  bl_ShadowFilterSB = createObject("GFXStateBlockData")
  bl_ShadowFilterSB:inheritParentFields(pfx_defaultstateblock)
if not bl_ShadowFilterPostFx then
  local bl_ShadowFilterShaderH = createObject("PostEffect")
  bl_ShadowFilterShaderH:setField("shader", 0, "BL_ShadowFilterShaderH")
  -- Blur vertically
  bl_ShadowFilterPostFx = createObject("PostEffect")
  bl_ShadowFilterPostFx:setField("shader", 0, "BL_ShadowFilterShaderV")
@/gameplay/missionTypes/collection/customNodes/collectionMarkersNode.lua
local function createMarkerObject(pos, dae)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, dae)
local function createLightObject(pos)
  local light =  createObject("PointLight")
  light:setPosition(pos)
@/lua/ge/extensions/tech/impactgen/crashOutput.lua
local function placePole(polePos)
  local obj = createObject('TSStatic')
  obj.shapeName = 'levels/west_coast_usa/art/shapes/objects/lamp1.dae'
local function placeSkybox()
  local obj = worldEditorCppApi.createObject('SkyBox')
  log('crashOutput', 'I', 'SkyBox obj created!')
@/lua/ge/extensions/scenario/raceMarkers/attention.lua
-- marker management
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
function C:createObject(shapeName, objectName)
  local marker =  createObject('TSStatic')
  marker:setField('shapeName', 0, shapeName)
  if not self.left then
    self.left = self:createObject(sideShape,sidesPrefix.."left"..self.id)
    table.insert(self._ids, self.left:getId())
@/lua/ge/extensions/gameplay/markers/crawlMarker.lua
  if not iconRendererObj then
    iconRendererObj = createObject("BeamNGWorldIconsRenderer")
    iconRendererObj:registerObject(iconRendererName);