GE Lua Documentation

Press F to search!

tooltip

Definition


-- @/lua/common/extensions/ui/flowgraph/editor.lua:168

local function tooltip(message)
  if editor_flowgraphEditor.allowTooltip then
    if im.IsItemHovered() then
      im.BeginTooltip()
      im.Text(message)
      im.EndTooltip()
    end
  end
end

Callers

@/lua/ge/extensions/editor/trafficDebug.lua
  im.PopItemWidth()
  im.tooltip("Use negative values to remove vehicles.")
  im.SameLine()
  im.PopItemWidth()
  im.tooltip("Use negative values to remove vehicles.")
  im.SameLine()
  im.PopItemWidth()
  im.tooltip("Sets the maximum amount of active (visible) traffic vehicles.")
  im.PopItemWidth()
  im.tooltip("Sets how often traffic vehicles will respawn.")
  im.PopItemWidth()
  im.tooltip("Sets the average direction of traffic vehicles (-1 = away from you, 1 = towards you).")
  im.PopItemWidth()
  im.tooltip("Sets how risky the general driving behavior should be.")
  end
  im.tooltip("Sets a strict speed limit for traffic vehicles (-1 = auto).")
  end
  im.tooltip("If true, AI will try to avoid collisions with other vehicles.")
  end
  im.tooltip("If true, random events can happen (such as lawless drivers).")
  im.PopItemWidth()
  im.tooltip("Sets the maximum amount of active (visible) parked vehicles.")
  im.PopItemWidth()
  im.tooltip("Sets the general probability of any parking spot being used for parked cars to spawn into.")
  im.PopItemWidth()
  im.tooltip("Sets how neatly the parked cars will be placed.")
  im.PopItemWidth()
  im.tooltip("Sets the precision needed to count as valid parking.")
end
    end
    im.tooltip("Enables or disables the vehicle respawning by itself if out of sight.")
    end
    im.tooltip("Enables or disables the player switching to or entering the vehicle.")
    end
    im.tooltip("Displays vehicle data in the developer console (press [~]).")
@/lua/ge/extensions/editor/dragRaceEditor/dragSettings.lua
    -- Remove functionality would go here
    im.tooltip("Remove functionality not yet implemented")
  end
    if im.IsItemHovered() then
      im.tooltip(string.format("Name: %s\nType: %s", settingsFile.name, settingsFile.type))
    end
    if im.IsItemHovered() then
      im.tooltip("Enable to use prefab for this component")
    end
@/lua/ge/extensions/editor/dynamicDecals/colorPresets.lua
      end
      im.tooltip("Remove color preset")
      end
      im.tooltip("Set color preset as decal color")
      end
      im.tooltip("Set color preset as fill color")
    end
@/lua/ge/extensions/editor/dynamicDecalsTool.lua
      end
      if button.tooltip then im.tooltip(button.tooltip) end
    end
  end
  im.tooltip("About")
  im.SameLine()
  end
  im.tooltip("Documentation")
  im.SameLine()
  end
  im.tooltip("Preferences")
  im.SameLine()
  end
  im.tooltip("Load")
  im.SameLine()
  end
  im.tooltip("Save as...")
  end
  im.tooltip(string.format("Save project\nOverwrites %s", currentProjectFile))
  if ext == "" then im.EndDisabled() end
  end
  im.tooltip("Browser")
  end
  im.tooltip("Toggle 'Use Surface Normal' setting\nIf enabled the tool calculates a normal based on the vehicle mesh.")
  im.SameLine()
  end
  im.tooltip(string.format("Toggle 'Use Mouse Position' setting\n%s", api.settingsFlags.UseMousePos.description))
  end
  im.tooltip("Decal tool")
  end
  im.tooltip("Brush Stroke tool")
  end
  im.tooltip("Path tool")
      end
      im.tooltip("Move tool")
    end
      end
      im.tooltip("Rotate tool")
    end
      end
      im.tooltip("Scale tool")
    end
        im.InputText(string.format("##sectionsOrderPrefs_%s_nameInput", section.name), editor.getTempCharPtr(section.name), nil, im.InputTextFlags_ReadOnly)
        im.tooltip("read-only")
        im.PopItemWidth()
@/lua/ge/extensions/editor/dynamicDecals/news.lua
    end
    im.tooltip("Do not pop up modal until a new version of the tool is available")
@/lua/ge/extensions/editor/camPathEditor.lua
        if im.IsItemHovered() then
          im.tooltip('Offset applied to vehicle center when "Track player vehicle" is enabled:\nX: Right/Left, Y: Forward/Backward, Z: Up/Down (relative to vehicle)')
        end
        if im.IsItemHovered() then
          im.tooltip('Show blue sphere at the tracking point for visualization')
        end
        if im.IsItemHovered() then
          im.tooltip('Reset all tracking offset values to zero')
        end
    -- if im.IsItemHovered() then
    --   im.tooltip('Set consistent speed based on distance between markers')
    -- end
    if im.IsItemHovered() then
      im.tooltip('Smooth out timing jumps while preserving overall pacing')
    end
    if im.IsItemHovered() then
      im.tooltip('Apply stronger smoothing to timing irregularities')
    end
    if im.IsItemHovered() then
      im.tooltip('Add a new camera marker at the current position (Shift+Click in 3D view)')
    end
        if im.IsItemHovered() then
          im.tooltip('Delete Marker')
        end
      if im.IsItemHovered() then
        im.tooltip('Moves the camera to the select marker position')
      end
        if im.IsItemHovered() then
          im.tooltip('Moves camera to marker position and syncs replay to marker time')
        end
      if im.IsItemHovered() then
        im.tooltip('Uses current camera position for the marker')
      end
      if im.IsItemHovered() then
        im.tooltip("The marker's position in the global timeline")
      end
      if im.IsItemHovered() then
        im.tooltip('Time to reach the next marker')
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'Time To Next' value for all markers")
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'fov' value for all markers")
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'Position Smooth' value for all markers")
      end
        if im.IsItemHovered() then
          im.tooltip('Change playback speed at this marker')
        end
        if im.IsItemHovered() then
          im.tooltip("Set this 'Bullet Time' value for all following markers")
        end
      if im.IsItemHovered() then
        im.tooltip("If enabled the marker will automatically rotate toward the player's vehicle")
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'Track player vehicle' value for all markers")
      end
      if im.IsItemHovered() then
        im.tooltip('This camera move will start already moving')
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'Moving Start' value for all markers")
      end
      if im.IsItemHovered() then
        im.tooltip('This camera move will not end with a standstill')
      end
      if im.IsItemHovered() then
        im.tooltip("Set this 'Moving End' value for all markers")
      end
    if im.IsItemHovered() then
      im.tooltip('Show camera composition overlay')
    end
      if im.IsItemHovered() then
        im.tooltip(
          'Select overlay mode:\n• Rule of Thirds: Classic photography grid with center crosshair\n• 16:9 Aspect: Widescreen format overlay\n• 9:16 Aspect: Portrait/mobile format overlay'
        if im.IsItemHovered() then
          im.tooltip('New Markers will get the time of the current replay. Starting the path also starts the replay.')
        end
      end
      im.tooltip('Allow the user to override the fov while the path camera is running')
      im.SameLine()
      end
      im.tooltip('The path will repeat when it reaches the end')
      im.EndChild()
@/lua/ge/extensions/editor/missionEditor/conditions.lua
  end
  im.tooltip("use 'any' for any progress key, 'default' for using the default key.")
  im.PopItemWidth()
    editor.uiIconImageButton(editor.icons.visibility_off, im.ImVec2(24, 24), nil, nil, nil,'##rem'..condition.type..index.."-"..depth)
    im.tooltip("This Condition is transient (generated at runtime) and can't be edited.")
    im.BeginDisabled()
      end
      im.tooltip(missionConditions[cType].info or "Missing info for this condition.")
    end
  end
  im.tooltip("leagueIds")
@/lua/ge/extensions/editor/flowgraph/examples.lua
  editor.uiIconImage(editor.icons.help, im.ImVec2(20,20))
  ui_flowgraph_editor.tooltip("Type any string to search for nodes, graphs and pins.\nBegin with 'node:', 'graph:' or 'pin:' to only search for those elements.")
end
        im.Text(result.info.data.description)
        ui_flowgraph_editor.tooltip(result.info.data.description)
      end
        im.TextWrapped(example.data.description)
        ui_flowgraph_editor.tooltip(example.data.description)
      end
@/lua/ge/extensions/flowgraph/nodes/states/transitionStack.lua
    im.Text("(Stack)")
    ui_flowgraph_editor.tooltip(dumps(self._stack))
  else
@/lua/ge/extensions/editor/rallyEditor/missionSettings.lua
  end
  im.tooltip(tt)
  end
  im.tooltip(tt)
end

  im.tooltip(tt)
end
@/lua/ge/extensions/editor/dynamicDecals/meshes.lua
  end
  im.tooltip("Change Shape Path")
end
@/lua/ge/extensions/editor/createObjectTool.lua
  end
  imgui.tooltip("Clear Filter")
end
@/lua/ge/extensions/editor/dynamicDecals/settings.lua
  end
  im.tooltip("Changing UV layer will reproject all layers.\nDepending on the amount of layers this might take some time.")
  im.PopItemWidth()
    end
    im.tooltip("Changing the texture resolution will reproject all layers.\nDepending on the amount of layers this might take some time.")
    local textureResolution = api.getTextureResolution()
@/lua/ge/extensions/flowgraph/nodes/ui/contextTranslation.lua
      editor.uiIconImage(editor.icons.translate, im.ImVec2(24, 24), im.ImVec4(1, 0, 0, 1))
      im.tooltip("No context found for this translationString!")
    elseif self.variablesState == 2 then
      editor.uiIconImage(editor.icons.translate, im.ImVec2(24, 24), im.ImVec4(0, 1, 0, 1))
      im.tooltip("Variables loaded successfully")
    else
      editor.uiIconImage(editor.icons.translate, im.ImVec2(24, 24), im.ImVec4(1, 1, 1, 1))
      im.tooltip("Put in translationString to load variables")
    end
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/decal.lua
  end
  im.tooltip("alpha mask rotation in degrees")
  im.PopItemWidth()
  end
  im.tooltip("Change Decal " .. name .. " Texture Path")
  im.SameLine()
  end
  im.tooltip("Remove Decal " .. name .. " Texture Path")
  local img = editor.getTempTextureObj(api.getDecalTexturePath(type))
    end
    im.tooltip("Do not pop up SDF introduction modal again")
  end
  end
  im.tooltip("Inverse Decal Rotation")
  end
  im.tooltip("Flip decal horizontally.\nEffectively inverses the component of the decal uv value.")
  im.PopStyleColor()
  end
  im.tooltip("Flip decal vertically.\nEffectively inverses the component of the decal uv value.")
  im.PopStyleColor()
    end
    im.tooltip(string.format("Reset to default: %s", dumps({horizontally = true, vertically = true})))
    im.SameLine()
      if #property.description > 0 then
        im.tooltip(property.description)
      end
      end
      im.tooltip("- Click to highlight property -")
    end
@/lua/ge/extensions/editor/mainMenu.lua
      end
      imgui.tooltip("Will delete all the current level's files found in the user folder (doesn't affect official files)")
    end
@/lua/ge/extensions/editor/inspector.lua
        if imgui.GetIO().KeyCtrl then
          imgui.tooltip(obj:getClassDocString())
        end
        end
        imgui.tooltip("Lock this Inspector to the currently selected object(s)")
        imgui.SameLine()
@/lua/ge/extensions/editor/api/valueInspector.lua
    if nil ~= oldStrRef then self.inputTextValue = oldStrRef end
    imgui.tooltip("This field's type: '".. fieldType .."' is not known by Inspector, hence a default text input editor was provided")
  end
@/lua/ge/extensions/editor/dragRaceEditor/facilities.lua
    if im.IsItemHovered() then
      im.tooltip(string.format("Name: %s\nDescription: %s", facility.name or "N/A", facility.description or "N/A"))
    end
    -- This would open strip creation dialog
    im.tooltip("Strip creation not yet implemented")
  end
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/fill.lua
  end
  im.tooltip("Add fill layer")
end
@/inspector/Views/NavigationItem.js

    get tooltip()
    {

    set tooltip(x)
    {
@/lua/ge/extensions/editor/dynamicDecals/notification.lua
            end
            im.tooltip("Remove notification")
            im.SameLine()
@/lua/ge/extensions/ui/console.lua
    end
    im.tooltip("Clear console")
    -- im.TextUnformatted(string.format("upd=%.3fms add=%.3fms", rollAvgCalc(rollAvgUpdate), rollAvgCalc(rollAvgAdd)) )
    end
    im.tooltip(fullscreen and "Exit fullscreen" or "Go fullscreen")
    end
    im.tooltip("Error")
    im.SameLine()
    end
    im.tooltip("Warning")
    im.SameLine()
    end
    im.tooltip("Info")
    im.SameLine()
    end
    im.tooltip("Debug")
    im.SameLine()
    end
    im.tooltip("Other")
    im.SameLine()
    end
    im.tooltip("Enable Vehicle control while Console window is open")
    im.SameLine()
    end
    im.tooltip("Force scroll bar down")
    im.SameLine()
    -- im.TextUnformatted("(?)")
    --im.tooltip(helpstr)
      --       if v ~= 2 and im.GetContentRegionAvailWidth() < im.CalcTextSize(tostring(v)).x then
      --         im.tooltip(tostring(v))
      --       end
      --       if v ~= 2 and im.GetContentRegionAvailWidth() < im.CalcTextSize(tostring(v)).x then
      --         im.tooltip(tostring(v))
      --       end
                  if tooltipOnLongTxt[0] then
                    im.tooltip(chunk)
                  end
                  if tooltipOnLongTxt[0] then
                    im.tooltip(tostring(v))
                  end
  --   -- end
  --   -- im.tooltip("Error")
  --   -- im.SameLine()
@/lua/ge/extensions/editor/missionEditor/additionalAttributes.lua
  im.Text("Author")
  im.tooltip("The Author of this Mission.")
  im.NextColumn()
  im.Text("Date")
  im.tooltip("When this mission was created or last updated.")
  im.NextColumn()
  im.Text("As Scenario")
  im.tooltip("If set, the mission is available as a scenario from the main menu.")
  im.NextColumn()
  im.Text("DEV Mission")
  im.tooltip("If set, the mission is not meant for release, but only for testing.")
  im.NextColumn()
    end
    if isAuto then im.EndDisabled() im.tooltip("This Value will be automatically set by the mission constructor.") end
    im.PopItemWidth()
  im.Text("Group Id")
  im.tooltip("Missions with the same ID will be grouped together in the bigmap. Leave empty for no group.")
  im.NextColumn()
  if im.IsItemHovered() then
    im.tooltip(self._groupLabelTranslated)
  end
      im.Text(string.format("%s - %s - %s",os.date('%Y-%m-%d %H:%M:%S', m.date), translateLanguage(m.name, m.name, true), m.id) )
      im.tooltip("Click to remove")
      if im.IsItemClicked() then remIdx = i end
@/lua/ge/extensions/editor/dynamicDecals/docs.lua
  if title then
    im.tooltip(title)
  end
@/lua/ge/extensions/flowgraph/nodes/string/format.lua
    end
    ui_flowgraph_editor.tooltip(txt)
  end
@/lua/ge/extensions/gameplay/drift/quickMessages.lua
          if im.IsItemHovered() then
            im.tooltip(im.ArrayChar(4096, dumps(data)))
          end
@/lua/ge/extensions/editor/assemblySpline.lua
    end
    im.tooltip('Add a new assembly spline.')
    im.SameLine()
    end
    im.tooltip(isDrawPolygon and 'Click to stop drawing a selection polygon.' or 'Click to draw a selection polygon, to convert scene objects to an Assembly Spline.')
    im.SameLine()
    end
    im.tooltip('Import assembly splines from a bitmap mask.')
    im.SameLine()
      end
      im.tooltip('Remove all (enabled and not linked) assembly splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the assembly spline to move nodes separately' or 'Lock the shape of the assembly spline to move nodes rigidly'))
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Assembly Splines.')
    else
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This assembly spline is linked to a Master Spline. To edit or remove it, first unlink it from within the Master Spline Editor.')
          elseif not spline.isEnabled then
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This assembly spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the assembly spline name.')
            if im.IsItemActive() then
            end
            im.tooltip('Remove this assembly spline from the session.')
          else
            end
            im.tooltip((spline.isEnabled and 'Disable' or 'Enable') .. ' this assembly spline.')
          else
        end
        im.tooltip('Go to this assembly spline (move camera).')
      else
        end
        im.tooltip((selSpline.isConformToTerrain and 'Unconform' or 'Conform') .. ' the selected assembly spline to the surface below.')
      else
        end
        im.tooltip(tooltipText)
      else
        end
        im.tooltip('Splits the selected assembly spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected assembly spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected assembly spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Saves the template of the selected assembly spline to disk.')
      else
        end
        im.tooltip('Sets the selected assembly spline to a template loaded from disk.')
      else
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the longitudinal spacing between each component, in meters.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the vertical offset of the components, in meters.')
      if im.IsItemActivated() then
          end
          im.tooltip("Reset to default")
        else
        end
        im.tooltip('Set the amount of sag of all bridge components which support sag.')
        if im.IsItemActivated() then
      end
      im.tooltip('Set the rotation to 0°.')
      im.SameLine()
      end
      im.tooltip('Set the rotation to 90°.')
      im.SameLine()
      end
      im.tooltip('Set the rotation to 180°.')
      im.SameLine()
      end
      im.tooltip('Set the rotation to 270°.')
      im.NextColumn()
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the components, around the local Y-axis (pitch) .')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the components, around the local X-axis (yaw).')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the components, around the local Z-axis (roll).')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the random seed for the variation properties of the spline (spline jitter, component distribution, and join play).')
      if im.IsItemActivated() then
      end
      im.tooltip('Select The Wooden Fence Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Telegraph Pole Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Metal Crash Barrier Preset.')
      im.NextColumn()
            im.TextColored(cols.blueB, string.format('[Imported from %d TSStatics]', sourceCount))
            im.tooltip('This assembly spline was imported from scene TSStatic objects.')
          else -- Show folder selection for non-imported kits.
            end
            im.tooltip('Select the Assembly Kit folder.')
            im.SameLine()
            end
            im.tooltip('The currently-selected Assembly Kit folder.')
          end
                  end
                  im.tooltip(mol.getRigidEnabled(selSpline, mesh.id) and 'Do not include this component in the assembly.' or 'Include this component in the assembly.')
                  im.SameLine()
                im.TextColored(cols.purpleB, mesh.fileName)
                im.tooltip(mesh.meshPath)
                im.SameLine()
                  im.TextColored(cols.redB, "[root]")
                  im.tooltip("The root mesh of the molecule.")
                elseif isEnabled then
                  im.TextColored(cols.dullWhite, "[child]")
                  im.tooltip("A child mesh of the molecule.")
                end
                  end
                  im.tooltip(mol.getRigidEnabled(selSpline, variation.id) and 'Do not include this variation in the assembly.' or 'Include this variation in the assembly.')
                  im.SameLine()
                  im.TextColored(cols.dullWhite, " * " .. variation.fileName)
                  im.tooltip(variation.meshPath)
                  im.SameLine()
                  im.TextColored(cols.dullWhite, "var" .. tostring(j))
                  im.tooltip("This is variation " .. tostring(j) .. " of the base component.")
                  im.NextColumn()
                end
                im.tooltip(mol.getBridgeEnabled(selSpline, mesh.id) and 'Do not include this bridge in the assembly.' or 'Include this bridge in the assembly.')
                im.SameLine()
                im.TextColored(cols.purpleB, mesh.fileName)
                im.tooltip(mesh.meshPath)
                im.SameLine()
                im.TextColored(cols.redB, string.format("[%s]", aliasName))
                im.tooltip("The alias name for this bridge instance.")
                im.SameLine()
                  end
                  im.tooltip(mol.getBridgeEnabled(selSpline, variation.id) and 'Do not include this variation in the assembly.' or 'Include this variation in the assembly.')
                  im.SameLine()
                  im.TextColored(cols.dullWhite, " * " .. variation.fileName)
                  im.tooltip(variation.meshPath)
                  im.SameLine()
                  im.TextColored(cols.dullWhite, "var" .. tostring(j))
                  im.tooltip("This is variation " .. tostring(j) .. " of the base component.")
                  im.NextColumn()
                end
                im.tooltip('Use round robin pattern for this component set.')
                wCtr = wCtr + 1
                end
                im.tooltip('Use random pattern for this component set.')
                wCtr = wCtr + 1
                      end
                      im.tooltip("Reset to default.")
                    else
                    end
                    im.tooltip("Set the weight for the base component.")
                    if im.IsItemActivated() then
                        end
                        im.tooltip("Reset to default.")
                      else
                      end
                      im.tooltip("Set the weight for variation " .. tostring(j) .. ".")
                      if im.IsItemActivated() then
                end
                im.tooltip('Use round robin pattern for this bridge component set.')
                wCtr = wCtr + 1
                end
                im.tooltip('Use random pattern for this bridge component set.')
                wCtr = wCtr + 1
                      end
                      im.tooltip("Reset to default.")
                    else
                    end
                    im.tooltip("Set the weight for the bridge base component.")
                    if im.IsItemActivated() then
                        end
                        im.tooltip("Reset to default.")
                      else
                      end
                      im.tooltip("Set the weight for bridge variation " .. tostring(j) .. ".")
                      if im.IsItemActivated() then
            end
            im.tooltip("Reset to default")
          else
          end
          im.tooltip('Set the Domain Of Influence, in meters.')
          im.PopItemWidth()
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip('Terraform the terrain to the selected Assembly Spline.')
          else
@/lua/ge/extensions/editor/missionEditor/dev.lua
    self.mission._dirty = true
  end im.tooltip("This Mission will only show if the user has devmode enabled.")
@/lua/ge/extensions/editor/raceEditor/trackLayout.lua
    self:changeField("defaultLaps",math.max(laps[0], 1))
  end im.tooltip("How many laps this track has by default. Open tracks can not have more than 1 lap.")
  local classification = self.path:classify()
  im.Text("Classification:") im.tooltip("These fields show you how your track is classified. The values depend on your track layout\nas well as what values you have set for the fields above.")
  self:displayClassification(classification, "Reversible: ", 'reversible', "If the track can be reversed. Possible if both the Default Starting Position\nand Reverse Starting Positions are set, as well as the End Node for open tracks.")
  local cpx = im.GetCursorPosX()
  im.Text(name) im.SameLine() im.SetCursorPosX(cpx + 90) im.tooltip(tt or "")
  if classification[field] then
  end
  im.tooltip(tt or "")
end
  end
  im.tooltip(tt or "")
end
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
          end
          im.tooltip('Remove this vehicle from scene.')
        end
        end
        im.tooltip('Go to the selected vehicle.')
        im.SameLine()
        end
        im.tooltip('Open the attached sensors window for this vehicle.')
        im.NextColumn()
          end
          im.tooltip('Remove this sensor from the configuration.')
          im.SameLine()
            end
            im.tooltip('Edit the selected sensor.')
          else
              end
              im.tooltip(config.tooltip)
            end
          end
          im.tooltip('Toggle between Edit and Live modes.')
          im.NextColumn()
      end
      im.tooltip('Add a Camera Sensor to the configuration.')
      im.SameLine()
      end
      im.tooltip('Add a LiDAR Sensor to the configuration.')
      im.SameLine()
      end
      im.tooltip('Add an Ultrasonic Sensor to the configuration.')
      im.SameLine()
      end
      im.tooltip('Add a RADAR Sensor to the configuration.')
      im.SameLine()
      end
      im.tooltip('Add an IMU Sensor to the configuration.')
      im.SameLine()
      end
      im.tooltip('Add a GPS Sensor to the configuration.')
      end
      im.tooltip('Add an Ideal RADAR Sensor to the configuration (only one per vehicle).')
      im.SameLine()
      end
      im.tooltip('Add a Roads Sensor to the configuration (only one per vehicle).')
      im.SameLine()
      end
      im.tooltip('Add a Powertrain Sensor to the configuration (only one per vehicle).')
      im.SameLine()
      end
      im.tooltip('Add a Mesh Sensor to the configuration (only one per vehicle).')
      im.SameLine()
      end
      im.tooltip('Save the current sensor configuration, for this vehicle, to disk.')
      im.SameLine()
      end
      im.tooltip('Load a sensor configuration, for this vehicle, from disk.')
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Render Color Image", uiVal)
        im.tooltip('Toggle whether to include the colour image in output.')
        sensor.renderColours = uiVal[0]
        im.Checkbox("Render Class Annotations", uiVal)
        im.tooltip('Toggle whether to include class annotations (segmentation) in output.')
        sensor.renderAnnotations = uiVal[0]
        im.Checkbox("Render Instance Annotations", uiVal)
        im.tooltip('Toggle whether to include instance annotations (segmentation) in output.')
        sensor.renderInstance = uiVal[0]
        im.Checkbox("Render Depth Image", uiVal)
        im.tooltip('Toggle whether to include the depth image in output.')
        sensor.renderDepth = uiVal[0]
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        end
        im.tooltip("Set the LiDAR to operate in 'Full 360 Degrees' mode.")
        im.SameLine()
        end
        im.tooltip("Set the LiDAR to operate in 'LFO' (low-frequency rotation) mode.")
        im.SameLine()
        end
        im.tooltip("Set the LiDAR to operate in 'Static' (no rotation) mode.")
        im.SameLine()
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of vertical resolution levels.')
        im.PopItemWidth()
        im.InputFloat("Vertical Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the vertical field of view, in degrees.')
        im.PopItemWidth()
        im.InputFloat("Horizontal Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the horizontal field of view, in degrees.')
        im.PopItemWidth()
        im.InputInt("Rotation Frequency (Hz) ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the rotation frequency, in Hz.')
        im.PopItemWidth()
        im.InputFloat("Max Detection Range ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the sensor maximum detection range, in meters.')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Include Segmentation Data", uiVal)
        im.tooltip('Toggle whether to include segmentation info (semantic annotations).')
        sensor.isAnnotated = uiVal[0]
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Range Roundness ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip("Set the 'roundness' of the beam shape.")
        im.PopItemWidth()
        im.InputFloat("Range Cutoff Sensitivity ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sensitivity of the range cutoff.')
        im.PopItemWidth()
        im.InputFloat("Range Shape ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Focus ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sharpness of the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Min Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the near plane, in meters.')
        im.PopItemWidth()
        im.InputFloat("Range Direct Max Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the far plane, in meters.')
        im.PopItemWidth()
        end
        im.tooltip('Set preset beam shape: Triangular, 7m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Thin bulb, 8m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Ultra thin bulb, 8m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Spherical, 5m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Flat head bulb, 5m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Tulip, 10m (long) range.')
        im.InputFloat("Sensitivity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the detection sensitivity.")
        im.PopItemWidth()
        im.InputInt("Window Width ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the width of the window used in processing the returns.')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Range Roundness ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip("Set the 'roundness' of the beam shape.")
        im.PopItemWidth()
        im.InputFloat("Range Cutoff Sensitivity ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sensitivity of the range cutoff.')
        im.PopItemWidth()
        im.InputFloat("Range Shape ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Focus ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sharpness of the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Min Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the near plane, in meters.')
        im.PopItemWidth()
        im.InputFloat("Range Direct Max Cutoff ###" .. tostring(ctr), uiVal, 1.0, nil, "%.4f m")
        im.tooltip('Set the far plane, in meters.')
        im.PopItemWidth()
        end
        im.tooltip('Set preset beam shape: Short Range (0.5m - 30m).')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Medium Range (1m - 70m).')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Long Range (10m - 250m).')
        im.InputInt("Range Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the range dimension.')
        im.PopItemWidth()
        im.InputInt("Azimuth Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the azimuth dimension.')
        im.PopItemWidth()
        im.InputInt("Velocity Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the velocity dimension.')
        im.PopItemWidth()
        im.InputFloat("Min Range ###" .. tostring(ctr), uiVal, 1, nil, "%.2f")
        im.tooltip("Set the minimum range to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Max Range ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the maximum range to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Min Velocity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the minimum velocity to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Max Velocity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the maximum velocity to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Azimuth Half-Angle ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip("Set the azimuth half-angle, used in data display.")
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
        im.InputFloat("Smoother Strength", uiVal, 0.0, 5.0, "%.1f")
        im.tooltip('Set the strength of the smoothing of the accelerometer and gyroscopic data.')
        im.PopItemWidth()
        im.Checkbox("Include Gravity", uiVal)
        im.tooltip('Toggle whether to include gravity in the readings, or not.')
        sensor.isUsingGravity = uiVal[0]
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        im.Checkbox("Allow Wheel Nodes (On Snap)", uiVal)
        im.tooltip('Toggle whether to allow attachment to wheel nodes, or not.')
        sensor.isAllowWheelNodes = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis, relative to vehicle center.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis, relative to vehicle center.')
        im.PopItemWidth()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (with wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the Center-Of-Gravity (without wheels included).')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the front axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the rear axle midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle front bumper midpoint.')
        im.SameLine()
        end
        im.tooltip('Re-position sensor at the vehicle rear bumper midpoint.')
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
        im.InputFloat("Origin Longitude", uiVal, 0.01, 359.9, "%.6f deg")
        im.tooltip('Set the longitude of the origin position.')
        im.PopItemWidth()
        im.InputFloat("Origin Latitude", uiVal, 0.01, 359.9, "%.6f deg")
        im.tooltip('Set the latitude of the origin position.')
        im.PopItemWidth()
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.Checkbox("Snap To Vehicle", uiVal)
        im.tooltip('Toggle whether to snap the sensor to the vehicle mesh, on creation.')
        sensor.isSnappingDesired = uiVal[0]
        im.Checkbox("Allow Wheel Nodes (On Snap)", uiVal)
        im.tooltip('Toggle whether to allow attachment to wheel nodes, or not.')
        sensor.isAllowWheelNodes = uiVal[0]
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
        im.InputFloat("Sensor Update Time", uiVal, 0.01, 60.0, "%.3f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.InputFloat("Data Collect Time", uiVal, 0.1, 360.0, "%.3f s")
        im.tooltip('Set the time between new batch data packets being made available to user.')
        im.PopItemWidth()
@/lua/ge/extensions/editor/trafficManager.lua
      end
      im.tooltip("Launches the Vehicle Groups tool, where you can create, edit, and save vehicle groups.")
    end
    local tip = options.vehicleGroupMode[0] == 2 and "Vehicle group amount." or "Multiplier of the currently selected vehicle to spawn."
    im.tooltip(tip)
    local tip = options.vehicleGroupEnabled[0] and "Spawns the vehicle group under the current camera view." or "Spawns the vehicle under the current camera view."
    im.tooltip(tip)
  end
    local tip = options.vehicleGroupEnabled[0] and "Enables clicking in the world to spawn the vehicle group." or "Enables clicking in the world to spawn the vehicle."
    im.tooltip(tip)
  end
            end
            im.tooltip(session.vehicles[nameId].locked and "Unlock Object" or "Lock Object")
            im.NextColumn()
    end
    im.tooltip("Enter Vehicle")
    im.NextColumn()
    end
    im.tooltip("Start AI")
    im.SameLine()
    end
    im.tooltip("Stop AI")
    if not isDrivable then im.EndDisabled() end
    end
    im.tooltip("Reset")
    im.SameLine()
    end
    im.tooltip("Delete")
    end
    im.tooltip("Save Home Position")
    im.SameLine()
    end
    im.tooltip("Duplicate")
          editor.uiIconImage(sessionData._tempData.varCurrentId and editor.icons.check or editor.icons.close, imSizes.small)
          im.tooltip("Variable: currentId")
          im.SameLine()
          editor.uiIconImage(sessionData._tempData.varPlayerId and editor.icons.check or editor.icons.close, imSizes.small)
          im.tooltip("Variable: playerId")
          end
          im.tooltip("If true, this vehicle will automatically respawn if it drives away from the camera view.")
        end
    end
    im.tooltip("Set Transform from Camera")
    im.SameLine()
    end
    im.tooltip("Set Transform with Mouse (Shift key also works)")
  end
  im.tooltip("Start AI")
  im.SameLine()
  end
  im.tooltip("Stop AI")
  im.SameLine()
  end
  im.tooltip("Reset Objects")
  im.SameLine()
  end
  im.tooltip("Delete Objects")
    end
    im.tooltip("Places a new traffic light marker here.")
    im.EndChild()
      end
      im.tooltip("Set Transform from Camera")
      im.SameLine()
      end
      im.tooltip("Set Transform with Mouse (Shift key also works)")
      im.SameLine()
      end
      im.tooltip("Delete")
              if state.state == "redTrafficLight" then
                im.tooltip("This is usually the delay time until the next signal phase starts.")
              end
        im.PopItemWidth()
        im.tooltip("Set to positive to delay start, or negative to skip ahead of start.")
          end
          im.tooltip("Places and links a standard traffic light object.")
        end
        end
        im.tooltip("Add Object to List")
        end
        im.tooltip("Remove Object from List")
            end
            im.tooltip("View")
            im.NextColumn()
    end
    im.tooltip("Play")
    im.SameLine()
    end
    im.tooltip("Stop")
    im.SameLine()
    end
    im.tooltip("Delete Lights")
    end
    im.tooltip("Launches the Traffic Signals Editor, for advanced setup of signals.")
    im.Checkbox("Keep Original Traffic Lights from Map##trafficManager", options.signalsKeepOriginal)
    im.tooltip("If true, the traffic lights from the map stay the same while the custom ones are used.")
    im.PopStyleColor(2)
    im.tooltip("Spawns the sign under the current camera view.")
    end
    im.tooltip("Enables clicking in the world to spawn the sign.")
      end
      im.tooltip(windows[key].name)
      im.SameLine()
    end
    im.tooltip("Save Session")
    im.SameLine()
    end
    im.tooltip("Load Session")
@/lua/ge/extensions/editor/util/editorElementHelper.lua
  if e.displayOptions.tooltip then
    im.tooltip(e.displayOptions.tooltip)
  end
    editor.uiIconImage(editor.icons.star, imVec16x16 ,imVec4TransparentWhite)
    im.tooltip("Associated to star " .. dumps(e.displayOptions.associatedStars))
  end
  if type(e.displayOptions) == 'string' then
    im.tooltip(e.displayOptions)
  elseif displayOpts.tooltip then
  elseif displayOpts.tooltip then
    im.tooltip(displayOpts.tooltip)
  end
    if im.IsItemHovered() then
      im.tooltip(e._translated)
    end
        if e.displayOptions.valueTooltips and e.displayOptions.valueTooltips[v] then
          im.tooltip(e.valueTooltips[v])
        end
  end
  im.tooltip("Doesnt check if this value is already the default.")
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip("Found file at " .. file)
  else
    editor.uiIconImage(editor.icons.error_outline, imVec24x24, imVec4Red)
    im.tooltip("No file at " .. file)
  end
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip(e.foundFile)
    im.SameLine()
      editor.uiIconImage(editor.icons.warning, imVec24x24,imVec4Yellow )
      im.tooltip("This file is optional: "..files)
      im.SameLine()
      editor.uiIconImage(editor.icons.error_outline, imVec24x24,imVec4Red )
      im.tooltip("Requiring one of these files: " .. files)
      im.SameLine()
  end
  im.tooltip("Saves to " .. ffi.string(e.ac))
end
  end
  im.tooltip("Saves to " .. ffi.string(e.ac))
end
      if e.valueTooltips[v] then
        im.tooltip(e.valueTooltips[v])
      end
local function decoHeaderDraw(e, ctd) im.PushFont3("cairo_regular_medium") im.TextColored(e.color, e.text) im.PopFont() end
local function decoTextDraw(e, ctd) im.Columns(2) im.SetColumnWidth(0,columnWidth) im.Dummy(im.ImVec2(1,1)) im.NextColumn() im.TextWrapped(e.text) if e.tooltip then im.tooltip(e.tooltip) end im.Columns(1) end
local separatorColor = im.GetColorU322(im.ImVec4(1,1,1,0.5))
@/lua/ge/extensions/editor/util/transformUtil.lua
    end
    im.tooltip("Start Editing " .. self.objectName)
  else
    end
    im.tooltip("Finish Editing " .. self.objectName)
  end
    end
    im.tooltip(btn.label)
    im.SameLine()
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
  end
  ui_flowgraph_editor.tooltip("Put in filter")
  end
  ui_flowgraph_editor.tooltip("Clear Filter")
    -- if im.IsItemHovered() then im.BeginTooltip() im.Text("Paste") im.EndTooltip() end
    ui_flowgraph_editor.tooltip("Paste Node")
  end
@/lua/ge/extensions/editor/missionEditor/objectives.lua
      end
      im.tooltip(self:getStarLabel(key))
      if not self.mission.careerSetup.starsActive[key] then im.EndDisabled() end
  if self.mission.careerSetup.defaultStarKeys[defaultIndex] then
    im.tooltip(translateLanguage(self.missionInstance.starLabels[self.mission.careerSetup.defaultStarKeys[defaultIndex]],self.missionInstance.starLabels[self.mission.careerSetup.defaultStarKeys[defaultIndex]], true))
  end
  end
  im.tooltip("Copy Rewards")
  im.SameLine()
  end
  im.tooltip("Paste Rewards: " ..dumps(self.copiedRewards))
  if not self.copiedRewards then
    editor.uiIconImage(editor.icons.font_download, im.ImVec2(22, 22), grayColor)
    im.tooltip("No Default Text found.")
  else
    if usingDefault then
      im.tooltip("Using Default Translation: " ..self.missionInstance.defaultStarOutroTexts[key].." : " ..translateLanguage(self.missionInstance.defaultStarOutroTexts[key], self.missionInstance.defaultStarOutroTexts[key], true))
    else
    else
      im.tooltip("Available Default Translation: " ..self.missionInstance.defaultStarOutroTexts[key].." : " ..translateLanguage(self.missionInstance.defaultStarOutroTexts[key], self.missionInstance.defaultStarOutroTexts[key], true))
    end
  if im.IsItemHovered() then
    im.tooltip(self._translatedTexts[key])
  end
  end
  im.tooltip("Copy Career Setup and Rewards")
  im.SameLine()
  end
  im.tooltip("Paste Career Setup and Rewards: " ..dumps(self.copiedStars[self.mission.missionType]))
  if not self.copiedStars[self.mission.missionType] then
@/lua/ge/extensions/editor/scriptAIEditor.lua
      end
      im.tooltip('Scenario contains negative times. Please normalize before execution.')
      im.SameLine()
        end
        im.tooltip('Execute scenario')
      else
        end
        im.tooltip('Stop scenario execution')
      end
    im.Checkbox("Overlay", twd.isOverlay)
    im.tooltip('Execute other scripts during recording')
    im.Checkbox("Display", twd.isDispInExe)
    im.tooltip('Show trajectory guides when executing')
          end
          im.tooltip('Play time-transport guide')
        else
          end
          im.tooltip('Stop time-transport guide')
        end
        end
        im.tooltip('Rewind time-transport guide')
        im.PopStyleVar()
        end
        im.tooltip('Fast forward time-transport guide')
      end
    im.Checkbox("Loop", twd.isLooping)
    im.tooltip('Loop the time-transport guide')
    end
    im.tooltip('Open/close vehicles window')
    end
    im.tooltip('Open/close trajectories window')
    end
    im.tooltip('Open/close camera window')
    end
    im.tooltip('Load session')
    if numTrajectories > 0 and numVehicles > 0 then
      end
      im.tooltip('Save session')
    end
          end
          im.tooltip('Remove this vehicle.')
          im.NextColumn()
          end
          im.tooltip('Go to the selected vehicle.')
          im.NextColumn()
            end
            im.tooltip('Open the linked trajectory window.')
          end
              end
              im.tooltip('Record a script with this vehicle.')
              im.SameLine()
              end
              im.tooltip('Stop recording.')
            end
          end
          im.tooltip('Remove the selected trajectory.')
          im.NextColumn()
            end
            im.tooltip('Open the linked trajectory window.')
          end
      end
      im.tooltip('Manually draw-in a new trajectory on the map.')
      im.SameLine()
      end
      im.tooltip('Import a trajectory from file.')
    else
          im.ColorEdit3("", tr.col)
          im.tooltip('Select a color for the trajectory.')
          im.Separator()
                end
                im.tooltip('Unlock the highlighted node, so it can be moved in time/space.')
              end
              end
              im.tooltip('Increase the velocity at the highlighted node.')
              im.SameLine()
              end
              im.tooltip('Decrease the velocity at the highlighted node.')
              im.SameLine()
            end
            im.tooltip('Add a new node directly after the highlighted node.')
            im.SameLine()
            end
            im.tooltip('Double the node resolution for finer-grained detailing.')
            im.SameLine()
          end
          im.tooltip('Remove the highlighted node.')
          im.SameLine()
            end
            im.tooltip('Lock the highlighted node, so that its values will not change.')
          else
            end
            im.tooltip('Unlock the highlighted node, so it can be moved in time/space.')
          end
          end
          im.tooltip('Reveal this trajectory on the map, from a top-down view.')
          im.SameLine()
          end
          im.tooltip('Export this trajectory to file.')
          im.Separator()
            im.InputFloat("start", tr.vModeTStart, 1, 0.0)
            im.tooltip('The start time at which to execute this trajectory.')
            im.PopItemWidth()
            im.InputFloat("end", tr.vModeTEnd, 1, 60.0)
            im.tooltip('The end time at which to execute this trajectory.')
            im.PopItemWidth()
            end
            im.tooltip('Attach this trajectory to the selected vehicle.')
          else
            end
            im.tooltip('Detach this trajectory from its linked vehicle.')
            im.SameLine()
            end
            im.tooltip("Move camera to this trajectory's linked vehicle.")
          end
          end
          im.tooltip('Assign the set velocity to the trajectory.')
          im.SameLine()
          im.InputFloat(" Velocity (kph)", tr.inputVelocity, 10.0, 1.0)
          im.tooltip('Enter a velocity to be set along the full length of this trajectory.')
          im.PopItemWidth()
          end
          im.tooltip('Switch between spline/polyline representation.')
          if tr.isUseSpline[0] == true then
          im.Checkbox("Trajectory", tr.isDisplay)
          im.tooltip('Switch the visual display of this trajectory on/off.')
          im.NextColumn()
          im.Checkbox("Nodes", tr.isMarkNodes)
          im.tooltip('Includes/Removes the trajectory nodes on the display.')
          im.NextColumn()
          im.Checkbox("Velocities", tr.isMarkVelocities)
          im.tooltip('Includes/Removes the line segment velocities on the display.')
          im.NextColumn()
          im.Checkbox("Rigid Path", tr.isUseRigidTranslation)
          im.tooltip('Treats the full trajectory as a rigid body when moving it on the map.')
          if isTimeBased == true then
            im.Checkbox("AI Assistant", tr.isExternalForce)
            im.tooltip('Switches AI assistance on/off. This helps to keep the vehicle on course.')
            im.NextColumn()
            im.Checkbox("Hold Velocity", tr.isHoldVelocity)
            im.tooltip('Maintains the average velocities of each section, as nodes are moved on the map.')
            im.NextColumn()
            im.SliderFloat("", tr.fieldRange, 0.1, 200.0, "Field = %.3f")
            im.tooltip('Sets the attraction force field while editing this trajectory on the map.')
            im.PopItemWidth()
          end
          im.tooltip('Change the time when the camera should arrive at this node.')
          if (j > 1 and n.t[0] <= nodes[j - 1].t[0]) or (j < numNodes and n.t[0] >= nodes[j + 1].t[0]) then n.t = im.FloatPtr(tOld) end
          end
          im.tooltip('Change the smoothness value of this node, in [0, 1].')
          if n.smoothness[0] < 0.0 then n.smoothness = im.FloatPtr(0.0) end
          im.Checkbox("Moving Start##" .. tostring(ctr + 2), n.movingStart)
          im.tooltip('Set whether or not to allow continuous movement on approach to this node.')
          im.NextColumn()
          im.Checkbox("Moving End##" .. tostring(ctr + 3), n.movingEnd)
          im.tooltip('Set whether or not to allow continuous movement on departure from this node.')
          im.NextColumn()
            end
            im.tooltip('Unlock the highlighted node, so it can be moved in time/space.')
          end
      end
      im.tooltip('Adds a camera trajectory node at the current camera position and current time.')
      if isDisabled then im.EndDisabled() end
      end
      im.tooltip('Removes the selected camera node.')
      if isDisabled then im.EndDisabled() end
      end
      im.tooltip('Auto generate a simple top-down camera path along the currently-selected trajectory.')
      if isDisabled then im.EndDisabled() end
      end
      im.tooltip('Shows a top-down view of the full camera trajectory.')
      im.NextColumn()
          end
          im.tooltip('Lock the highlighted node, so that its values will not change.')
        else
          end
          im.tooltip('Unlock the highlighted node, so it can be moved in time/space.')
        end
      im.Checkbox("Display", cwd.isDisplay)
      im.tooltip('Toggles the camera trajectory display on the map, when editing.')
      im.SameLine()
      im.Checkbox("On Execute", cwd.isOnExecute)
      im.tooltip('Toggles whether the camera path will be used during execution.')
      im.NextColumn()
      im.SliderFloat("", cwd.fieldRange, 0.1, 200.0, "Field = %.3f")
      im.tooltip('Sets the attraction force field while editing this camera path.')
      im.PopItemWidth()
      im.ColorEdit3("", cwd.col)
      im.tooltip('Selects a color for the camera trajectory.')
      im.NextColumn()
      im.ColorEdit3("", dwd.drawCol)
      im.tooltip('Select a color for the trajectory.')
      im.Separator()
        end
        im.tooltip('Finish drawing trajectory, and add to the trajectory list.')
        im.EndListBox()
        end
        im.tooltip('Create trajectory and finish drawing.')
        im.SameLine()
@/lua/ge/extensions/editor/missionEditor/layers.lua
  editor.uiIconImage(editor.icons.info, imVec20x20, infoColor)
  im.tooltip("Mission will try to find files in each of these folders, until it finds a matching file.")
  local width = im.GetContentRegionAvailWidth()
  if layer.isMissionFolderDir then
    im.tooltip("This is the mission folder and cannot be changed.")
  end
  if layer.isMissionTypeDir then
    im.tooltip("This is the mission type folder and cannot be changed.")
  end
@/lua/ge/extensions/editor/missionEditor/careerSetup.lua
  end
  im.tooltip("Copy Rewards")
  im.SameLine()
  end
  im.tooltip("Paste Rewards: " ..dumps(self.copiedRewards))
  if not self.copiedRewards then
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
          end
          im.tooltip(text)
        end
        end
        im.tooltip('Go to the selected vehicle.')
        im.NextColumn()
        end
        im.tooltip('Open the signals window for this vehicle.')
        im.NextColumn()
          end
          im.tooltip(btnText)
        end
          end
          im.tooltip('Save the current signals configuration, for this vehicle, to disk.')
        end
          end
          im.tooltip('Load a signals configuration, for this vehicle, from disk.')
        end

        --   im.tooltip("Select the mode: VSL (Logging only), VSL+CoSim (Logging and Co-Simulation), or CoSim (Co-Simulation only).")
        -- end
      end
      im.tooltip('Include the Kinematics signals group.')
      im.SameLine()
      end
      im.tooltip('Include the Driver signals group.')
      im.SameLine()
      end
      im.tooltip('Include the Wheels signals group.')
      im.SameLine()
      end
      im.tooltip('Include the Electrics signals group.')
      im.SameLine()
      end
      im.tooltip('Include the Powertrain signals group.')
      im.SameLine()
      end
      im.tooltip('Include the Attached Sensors signals group.')
            end
            im.tooltip('Do not include this signal in the vehicle signals configuration.')
          else
            end
            im.tooltip('Include this signal in the vehicle signals configuration.')
          end
            end
            im.tooltip('This signal is read only, and goes from BeamNG -> 3rd Party.')
          else
              end
              im.tooltip('Current Direction: 3rd Party -> BeamNG.')
            else
              end
              im.tooltip('Current Direction: BeamNG -> 3rd Party.')
            end
      end
      im.tooltip("Reload available signals.")
      im.SameLine()
      end
      im.tooltip("Unlink all selected signals (reset configuration).")
      im.SameLine()
      im.Checkbox("Store Pos/Rot", isPose)
      im.tooltip('Toggle whether to store the vehicle pose (position and rotation) with configuration file.')
      im.SameLine()
      compTime3rdParty = im.FloatPtr(max(1e-4, min(1e4, compTime3rdParty[0])))
      im.tooltip('The expected computation time for each 3rd party cycle in the coupling.')
      im.PopItemWidth()
      pingTime = im.FloatPtr(max(1e-5, min(1e4, pingTime[0])))
      im.tooltip('The expected udp socket ping time.')
      im.PopItemWidth()
      im.ArrayChar(128, "Server description")
      im.tooltip('Set the IP address on the 3rd party computer.')
      im.PopItemWidth()
      im.InputInt("###301", sPort, 10, nil)
      im.tooltip('Set the port number on the 3rd party computer.')
      im.PopItemWidth()
      im.InputText("###302", rIP)
      im.tooltip('Set the IP address on the BeamNG computer.')
      im.PopItemWidth()
      im.InputInt("###303", rPort, 10, nil)
      im.tooltip('Set the port number on the 3rd party computer.')
      im.PopItemWidth()
      -- loggingFrequency[0] = math.max(1, loggingFrequency[0])  -- Ensure it's an integer with a minimum value of 1
      -- im.tooltip('The signal logging frequency in seconds.')
@/lua/ge/extensions/editor/dynamicDecals/export.lua
          editor.uiIconImageButton(editor.icons.warning, tool.getIconSizeVec2(), editor.color.warning.Value)
          im.tooltip("File already exists! Exporting textures will overwrite the file!")
        end
@/lua/ge/extensions/editor/dynamicDecals/helper.lua
  editor.uiIconImage(editor.icons.info_outline, im.ImVec2(tool.getIconSize(), tool.getIconSize()))
  im.tooltip(msg)
end
@/lua/ge/extensions/editor/dynamicDecals/layerStack.lua
    end
    im.tooltip("Move layer up")
    if k == #parentStack then im.EndDisabled() end
    end
    im.tooltip("Move layer down")
    if k == 1 then im.EndDisabled() end
    end
    im.tooltip("Move layer up")
    if k == 1 then im.EndDisabled() end
    end
    im.tooltip("Move layer down")
    if k == #parentStack then im.EndDisabled() end
  editor.uiIconImageButton(editor.icons.menu, im.ImVec2(tool.getIconSize(), tool.getIconSize()), nil, nil, nil, string.format("%s_%s_%s", "layerdrag##", guiId, layer.uid))
  im.tooltip("LMB + drag to move layer")
  if im.BeginDragDropSource(im.DragDropFlags_SourceAllowNullID) then
  )
  im.tooltip(
    layer.type == api.layerTypes.decal and "Decal Layer" or
  end
  im.tooltip("Toggle layer visibility")
    end
    im.tooltip("Unselect layer")
  else
    end
    im.tooltip("Select layer")
  end
  end
  im.tooltip("Remove layer")
  end
  im.tooltip("Duplicate layer")
    end
    im.tooltip("Duplicate And Mirror layer")
  end
    end
    im.tooltip("Disable mask editing\nRMB to open layer mask context menu")
  else
    end
    im.tooltip("Enable mask editing\nRMB to open layer mask context menu")
  end
    end
    im.tooltip("Hover to highlight decal.\nLMB to permanently highlight decal")
    if im.IsItemHovered() then
      editor.uiIconImageButton(editor.icons.warning, im.ImVec2(tool.getIconSize(), tool.getIconSize()), editor.color.warning.Value, nil, nil, string.format("missingTextureFiles", guiId, layer.uid))
      im.tooltip("Missing texture files: " .. dumps(layer.status.missingTextureFiles))
    end
      editor.uiIconImageButton(editor.icons.warning, im.ImVec2(tool.getIconSize(), tool.getIconSize()), editor.color.warning.Value, nil, nil, string.format("missingFontFile", guiId, layer.uid))
      im.tooltip("Missing font file: " .. layer.status.missingFontFile.path)
    end
    end
    im.tooltip(layer.mask.enabled and "Disable layer mask" or "Enable layer mask")
    im.SameLine()
    end
    im.tooltip("Remove layer mask")
    im.SameLine()
          end
          im.tooltip("Unselect layer mask layer")
        else
          end
          im.tooltip("Select layer mask layer")
        end
        end
        im.tooltip("Remove layer mask layer")
        im.SameLine()
        end
        im.tooltip("Hover to highlight layer mask decal.\nLMB to permanently highlight layer mask decal")
        if im.IsItemHovered() then
    end
    im.tooltip("RMB to open layer mask context menu")
    if im.IsItemClicked(1) then
  end
  im.tooltip("Adds an empty group layer to the stack")
  im.SameLine()
  end
  im.tooltip("Add Linked Set Layer")
@/lua/ge/extensions/flowgraph/nodes/logic/booleanExpression.lua
      end
      ui_flowgraph_editor.tooltip(template.description)
    end
      self.mgr:DrawTypeIcon(pin.type, true, 1)
      ui_flowgraph_editor.tooltip(dumps(pin.type))
      im.SameLine()
@/lua/ge/extensions/flowgraph/nodes/math/math.lua
      end
      ui_flowgraph_editor.tooltip(template.description)
    end
      self.mgr:DrawTypeIcon(pin.type, true, 1)
      ui_flowgraph_editor.tooltip(dumps(pin.type))
      im.SameLine()
@/lua/ge/extensions/flowgraph/nodes/input/blacklistActionFilter.lua
    local tt = table.concat(self.actionTemplates[key], ", ")
    im.tooltip(tt)
  end
@/lua/ge/extensions/editor/fileDialog.lua
      end
      im.tooltip("New folder")
@/lua/ge/extensions/editor/aiTests.lua
  end
  im.tooltip("Sends route data to the ground markers system.")
  im.SameLine()
  end
  im.tooltip("Sends route data to the dev console.")
    im.Checkbox("Use Current Route##aiParams", options.useCurrentRoute)
    im.tooltip("If true, uses the route from the Route tab; otherwise, generates a random route.")
    im.Checkbox("Enable AI Debug Drawing##aiParams", options.aiDebug)
    im.tooltip("If true, shows the AI trajectory debug mode.")
    end
    im.tooltip("Disable inter-vehicle collisions to compare AI as ghosts.")
    end
    im.tooltip("Merge all vehicle positions and rotations to match the first vehicle.")
    if options.dynamicCollisions[0] or not vehicleIds[2] then im.EndDisabled() end
@/lua/ge/extensions/editor/objectToSplineEditor.lua
    end
    im.tooltip("Select the object that you want to make copies of.")
    im.NextColumn()
    end
    im.tooltip("Select the road that you want to use as a spline or guide.")
    if guideErrorTxt then
    if im.RadioButton2("Auto ##objectSpline", objAxis, im.Int(1)) then _changed = true end
    im.tooltip("Uses the longest side: X or Y")
    im.SameLine()
    if im.Checkbox("Use Position Correction", useAltMode) then _changed = true end
    im.tooltip("Enable this to improve placements of objects that have non-centered origins, such as some fences.")
    if im.InputInt("Object Limit##objectSpline", objLimit, 10) then _changed = true end
    im.tooltip("Sets the maximum amount of objects to spawn, as a safety.")
    im.PopItemWidth()
@/lua/ge/extensions/editor/rallyEditor/pacenotes/customForm.lua
  im.HeaderText("Preview - Custom")
  -- im.tooltip(dumps(pacenote.structured.fields))
  end
  im.tooltip(tooltipStr)
  end
  im.tooltip("Open audio files folder in explorer.")
  end
  im.tooltip("Copy audio files folder path to clipboard.")
  im.Text(codriverHelpTxt)
  im.tooltip(codriverHelpTxt)
  end
  im.tooltip("Enter the path to the audio file to play for this pacenote.")
@/lua/ge/extensions/editor/masterSpline.lua
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[1]))
  im.SameLine()
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[2]))
  im.SameLine()
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[3]))
  im.SameLine()
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[4]))
  im.SameLine()
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[5]))
  im.SameLine()
  end
  im.tooltip(string.format('Switch AutoPilot preset to: [%s].', roadDesignPresetStrs[6]))
  im.NextColumn()
    end
    im.tooltip('Add a new Master Spline.')
    im.SameLine()
    end
    im.tooltip('Import Master Splines from a bitmap mask.')
    im.SameLine()
      end
      im.tooltip('Remove all Master Splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the Master Spline to move nodes separately' or 'Lock the shape of the Master Spline to move nodes rigidly'))
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Master Splines.')
    else
            end
            im.tooltip('Edit the Master Spline name.')
          else
            im.TextColored(cols.dullWhite, ffi.string(splineNamePtr))
            im.tooltip('This Master Spline is disabled.')
          end
            end
            im.tooltip("Remove this Master Spline from the session.")
          else
          end
          im.tooltip(spline.isEnabled and "Disable this Master Spline (content will remain but will be uneditable)" or "Enable this Master Spline (content will be editable)")
          im.NextColumn()
        end
        im.tooltip('Move the camera to the selected Master Spline.')
      else
        end
        im.tooltip((selSpline.isConformToTerrain and 'Unconform' or 'Conform') .. ' the selected Master Spline to the surface below.')
      else
        end
        im.tooltip('Splits the selected Master Spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected master spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected Master Spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Export the selected Master Spline to a GLTF file.')
      else
        end
        im.tooltip("Reset to default.")
      else
      end
      im.tooltip('Set the strength of auto banking for the selected Master Spline.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default.")
      else
      end
      im.tooltip('Set how quickly auto banking falls off from nodes (higher = tighter domain of influence).')
      if im.IsItemActivated() then
      end
      im.tooltip(selSpline.isAutoBanking and 'Disable Auto Banking for the selected Master Spline.' or 'Enable Auto Banking for the selected Master Spline.')
    end
                  end
                  im.tooltip('Edit the layer name.')
                  if im.IsItemActive() then
                  end
                  im.tooltip('Remove this layer from the session.')
                  im.NextColumn()
                    end
                    im.tooltip('Go to the linked spline in its tool')
                  else
            end
            im.tooltip('Create a new layer with a new road spline linked to it')
            im.SameLine()
            end
            im.tooltip('Create a new layer with a new mesh spline linked to it')
            im.SameLine()
            end
            im.tooltip('Create a new layer with a new assembly spline linked to it')
            im.SameLine()
            end
            im.tooltip('Create a new layer with a new decal spline linked to it')
            im.SameLine()
              end
              im.tooltip('Remove all layers from the Master Spline')
            else
              end
              im.tooltip('Toggle whether this layer should be flipped laterally (left <--> right).')
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the lateral position of the layer on the Master Spline (-1.0 = left edge, 0.0 = center, 1.0 = right edge).')
              if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the Domain Of Influence, in meters.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the margin around the spline, in meters.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the slope falloff exponent (1 = soft, 5 = sharp).')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the noise roughness/amplitude (0 = no noise, 1 = full roughness).')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the scale/frequency of the noise (low = large bumps, high = small bumps).')
            if im.IsItemActivated() then
              end
              im.tooltip('Terraform the terrain to the selected Master Spline.')
            else
          end
          im.tooltip('Analyze slope gradient violations against road design standards.')
          end
          im.tooltip('Analyze corner radius violations for safe vehicle turning.')
          end
          im.tooltip('Analyze banking angle violations for proper vehicle dynamics.')
          end
          im.tooltip('Analyze width gradient violations for smooth lane transitions.')
          im.Dummy(im.ImVec2(0, 3))
            end
            im.tooltip(selSpline.isOptimising and 'Disable Live Optimize for the selected Master Spline.' or 'Enable Live Optimize for the selected Master Spline.')
          end
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the base width of the Auto Road, in meters.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the slope avoidance of the Auto Road (0 = path will accept large slopes, 1 = strong slope avoidance).')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the amount of added width for corners (0 = no added width, 1 = max extra width).')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the banking strength of the Auto Road (0 = no banking, 1 = strong banking).')
            if im.IsItemActivated() then
              end
              im.tooltip('Create an auto-generated spline preview through all nodes.')
            else
              end
              im.tooltip('Clear the auto-generated road preview.')
            else
              end
              im.tooltip('Convert the auto-generated preview into a master spline.')
            else
@/lua/ge/extensions/editor/perfProfiler.lua
        im.TableSetupColumn(label, nil, 30)
        im.tooltip(table.concat(col.keys, " > "))
      end
@/lua/ge/extensions/editor/raceEditor.lua
          end
          im.tooltip(#(extensions.scenario_waypoints.state.originalBranches or {}) .. " elements")
        end
          end
          im.tooltip("This might take a few seconds.")
          im.Separator()
            end
            im.tooltip(f.file)
          end
        end
        im.tooltip("Created pathnodes have a direction or not.")
        local ptr2 = im.BoolPtr(editor.getPreference("raceEditor.general.showAiRoute") or false)
        end
        im.tooltip("Previews the AI Route for this racepath.")
        local ptr4 = im.BoolPtr(editor.getPreference("raceEditor.general.useSimpleDrag") or false)
        end
        im.tooltip("Enable the experimental simple drag mode for the race editor.")
        im.EndMenu()
        end
        im.tooltip("Recalculates the segments based on the current order of pathnodes.\nDoes NOT take branching into account.")
        if add then
        if im.BeginMenu(raceDistanceString()) then im.EndMenu() end
        im.tooltip("Recalculates the distance of the race by measuring the length of the ai path.")
        im.EndDisabled()
@/lua/ge/extensions/editor/dragRaceEditor/strips.lua
    if im.IsItemHovered() then
      im.tooltip(string.format("Name: %s\nDescription: %s", strip.name or "N/A", strip.description or "N/A"))
    end
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua
    im.Text("Trigger Name")
    ui_flowgraph_editor.tooltip("Trigger Name: " .. tostring(self.triggerName))
  end
@/lua/ge/extensions/util/screenshotCreator.lua
        end
        im.tooltip("Restore settings to thumbnail's")
        if isDefaultConfig() then
        im.PopStyleColor()
        im.tooltip("To disable procedural camera placement during thumbnail generation, enable either one of the manual camera placement below")
        im.SameLine()
                    end
                    im.tooltip(string.format("Click to set camera to '%s' config's camera", configData.key))
                  else
                end
                im.tooltip("If enabled, will use the current vehicle config's custom camera during thumbnail generation.")
              else
              end
              im.tooltip("Will save the current camera's position and rotation for current vehicle config only")
            end
                  end
                  im.tooltip("If enabled, will use the current vehicle model's custom camera during thumbnail generation.")
                end
                im.tooltip("Will save the current camera's position and rotation for current model")
              end
@/lua/ge/extensions/editor/dynamicDecals/widgets.lua
    end
    im.tooltip("Lock ratio")
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if tooltipMsg then
    im.tooltip(tooltipMsg)
  end
    if baseProp.options then
      im.tooltip(string.format("Reset to default: %d (%s)", baseProp.default, baseProp.options[baseProp.default + 1]))
    else
    else
      im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    end
    if baseProp.options then
      im.tooltip(string.format("Reset to default: %d (%s)", baseProp.default, baseProp.options[baseProp.default + 1]))
    else
    else
      im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    if baseProp.options then
      im.tooltip(string.format("Reset to default: %d (%s)", baseProp.default, baseProp.options[baseProp.default + 1]))
    else
    else
      im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    if baseProp.options then
      im.tooltip(string.format("Reset to default: %d (%s)", baseProp.default, baseProp.options[baseProp.default + 1]))
    else
    else
      im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(widgetId)
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_x", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_y", widgetId))
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_x", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_y", widgetId))
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_x", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_y", widgetId))
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_x", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_y", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_z", widgetId))
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_x", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_y", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_z", widgetId))
  end
  if editor.getPreference("dynamicDecalsTool.general.debug") then
    im.tooltip(string.format("%s_w", widgetId))
  end
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    end
    im.tooltip(string.format("Reset to default: %s", dumps(baseProp.default)))
    im.SameLine()
    if #description > 0 then
      im.tooltip(string.format("%s\n%s", widgetId, description))
    else
    else
      im.tooltip(widgetId)
    end
    if #description > 0 then
      im.tooltip(description)
    end
    end
    im.tooltip("Widget Type")
@/lua/ge/extensions/editor/rallyEditor/static.lua
  end
  im.tooltip("Save notebook and reload system pacenotes from disk")
    im.Text("Compositor: " .. lang)
    im.tooltip("System pacenotes are loaded from:\n/lua/ge/extensions/gameplay/rally/compositors/"..lang.."/compositor.lua")
  end
      end
      im.tooltip(tooltipStr)
      im.NextColumn()
  --       end
  --       im.tooltip(tooltipStr)
  --       im.SameLine()
  --       end
  --       im.tooltip(tooltipStr)
  --       im.SameLine()
  --     im.NextColumn()
  --     -- im.tooltip(fname)
  --   end
@/lua/ge/extensions/editor/measuresInspectorHeader.lua
    imgui.Text("Size: " .. string.format("%.2f", size.x) .. " x " .. string.format("%.2f", size.y) .. " x " .. string.format("%.2f", size.z))
    imgui.tooltip("The size of the selection bounding box, scale included")
  end
@/lua/ge/extensions/editor/dynamicDecals/loadSave.lua
  end
  im.tooltip(string.format("Overwrites %s", lastProjectFilePath))
  if ext == "" then im.EndDisabled() end
    im.PopItemWidth()
    im.tooltip("[Mode] Defines how the layer stack is handled when loading a project file.\nOverwrite: Layer stack will be wiped and replaced by the layers from the project file.\nAppend: The tool appends the layers from the project file to the layer stack.")
  end
@/lua/ge/extensions/editor/util/searchUtil.lua
  end
  im.tooltip(string_preview_value)
  if ret then
@/lua/ge/extensions/editor/decalEditor.lua
  end
  im.tooltip("Create Decal Template")
  im.SameLine()
  if disabled then im.EndDisabled() disabled = false end
  im.tooltip("Delete Template")
  im.SameLine()
  if disabled then im.EndDisabled() disabled = false end
  im.tooltip("Save current Template")
  im.SameLine()
  end
  im.tooltip("Save all Templates")
  if disabled then im.EndDisabled() end
  im.tooltip("Delete Instance")
@/lua/ge/extensions/editor/flowgraph/main.lua
              im.EndDisabled()
              ui_flowgraph_editor.tooltip("No File Found under " .. dumps(file) .. " !")
            end
      end
      im.tooltip("Creates an additional .json file so this Project can be loaded as a scenario.")
      im.Separator()
      end
      ui_flowgraph_editor.tooltip("Replaces the current projects contents with a loaded one.")
      if im.MenuItem1("Load Macro from file...") then
          if editor.getPreference("flowgraph.debug.editorDebug") then
            ui_flowgraph_editor.tooltip("Selected Graph: " .. gr:toString() .. ", displayed graph " .. graph:toString())
          end
            editor.uiIconImage(self.mgr.runningState ~= "running" and editor.icons.pause_circle_outline or editor.icons.play_circle_filled, im.ImVec2(20, 20))
            ui_flowgraph_editor.tooltip(self.mgr.runningState == "running" and "Project Running" or "Project Stopped")
            im.SameLine()
              end
              ui_flowgraph_editor.tooltip("Start Execution")
              im.SameLine()
              end
              ui_flowgraph_editor.tooltip("Start and immediatly pause")
            elseif self.mgr.runningState == "running" then
              editor.uiIconImage(editor.icons.play_arrow, im.ImVec2(20, 20))
              ui_flowgraph_editor.tooltip("Project running")
              end
              ui_flowgraph_editor.tooltip("Pause")
              end
              ui_flowgraph_editor.tooltip("Resume Execution")
              im.SameLine()
              end
              ui_flowgraph_editor.tooltip("Step 1 Frame")
            end
              end
              ui_flowgraph_editor.tooltip("Stop Execution")
            else
              editor.uiIconImage(editor.icons.stop, im.ImVec2(20, 20))
              ui_flowgraph_editor.tooltip("Project stopped")
            end
              end
              ui_flowgraph_editor.tooltip("Reserialize Mgr (debug)")
            end
            end
            ui_flowgraph_editor.tooltip("Minimize Editor.")
            im.SameLine()
            end
            ui_flowgraph_editor.tooltip("Hides the editor when running and shows the Monitor instead.")
            if editor.getPreference("flowgraph.debug.duplicateIdCheck") then
        im.SameLine()
        --  ui_flowgraph_editor.tooltip("Replacing original target link.")
        self.mgr:DrawTypeIcon(other.type, true, 1)
@/lua/ge/extensions/editor/sceneTree.lua
  if imgui.ImGuiTextFilter_IsActive(instance.nameFilter) then
    imgui.tooltip("ID: " .. node.id .. " Parent: " .. (node.parent.name or ""))
  end
@/lua/ge/extensions/editor/assetBrowser.lua
  -- im.SetNextWindowSize(im.ImVec2(0, im.GetContentRegionAvail().y))
  im.tooltip(tooltip)
  if contextMenu == true then
    end
    im.tooltip(dir.name)
      setScrollBarValue()
      im.tooltip(material.name)
    end
      if var.options.assetViewFilterType == var.assetViewFilterType_enum.current_folder_files then
        im.tooltip(file.fullFileName)
      elseif var.options.assetViewFilterType == var.assetViewFilterType_enum.all_files then
      elseif var.options.assetViewFilterType == var.assetViewFilterType_enum.all_files then
        im.tooltip(file.path)
      end
  end
  im.tooltip("Thumbnail size")
  im.PopID()
  if var.historyIndex > 1 then
    im.tooltip("back to " .. var.history[(var.historyIndex -1)].path)
  end
  if tooltipDir then
    im.tooltip("forward to " .. tooltipDir.path)
  end
  im.PopStyleColor()
  im.tooltip("Save current filter")
  local open_popup_rmb = false
  im.tooltip("Filter by type")
    im.PopStyleColor()
    im.tooltip((var.options.treeView == true) and "Hide tree view" or "Show tree view")
        im.PopItemWidth()
        im.tooltip("Sort by")
        im.PopItemWidth()
        im.tooltip("Group by")
        im.PopStyleColor()
        im.tooltip((editor.getPreference("assetBrowser.general.filter_displayDirs") == true) and "Hide folders" or "Show folders")
        im.PopStyleColor()
        im.tooltip((editor.getPreference("assetBrowser.general.filter_displayAssets") == true) and "Hide assets" or "Show assets")
        im.PopStyleColor()
        im.tooltip((var.options.filter_displayTextureSets == true) and "Hide texture sets" or "Show texture sets")
        im.PopStyleColor()
        im.tooltip("Search for files in all folders.")
        im.PopStyleColor(1)
        im.tooltip("Search for files and directories in the current selected directory.")
      im.PopStyleColor()
      im.tooltip("Restore filter settings")
      if maxWidth < im.CalcTextSize(assetName).x then
        im.tooltip(assetName)
      end
      if maxWidth < im.CalcTextSize(inspector_selectedAsset.path).x then
        im.tooltip(inspector_selectedAsset.path)
      end
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.accesstimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.accesstimeString)
        end
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.createtimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.createtimeString)
        end
        if maxWidth < im.CalcTextSize(inspector_selectedAsset.filestats.modtimeString).x then
          im.tooltip(inspector_selectedAsset.filestats.modtimeString)
        end
@/lua/ge/extensions/editor/forestEditor.lua
  if tooltip then
    im.tooltip(tooltip)
  end
  end
  im.tooltip(tool.tooltip)
  im.SameLine()
  end
  im.tooltip("Open Parallax Mapping TextureSet Editor")
    end
    im.tooltip("Create Forest Object (in the root group)")
  end
  end
  im.tooltip(string.format("%s\n%s\nLMB: Select texture\nRMB: Open context menu", tooltip, (pM_textureSets.data[selectedTextureSetIdStr] and pM_textureSets.data[selectedTextureSetIdStr][id]) and pM_textureSets.data[selectedTextureSetIdStr][id] or "-none-"))
end
  end
  im.tooltip("Copy texture set properties")
  if pM_selectedTextureSetId < 1 or pM_selectedTextureSetData == nil then im.EndDisabled() end
  end
  im.tooltip("Paste texture set properties")
  if pM_selectedTextureSetId < 1 or pM_textureSetCopy == nil then im.EndDisabled() end
  end
  im.tooltip("Clear texture set properties")
  if pM_selectedTextureSetId < 1 or pM_selectedTextureSetData == nil then im.EndDisabled() end
  end
  im.tooltip("Save current texture set")
    end
    im.tooltip("Revert changes")
    im.SameLine()
        end
        im.tooltip("Add New Brush Group")
        im.SameLine()
        end
        im.tooltip("Add New Brush Element")
        im.SameLine()
        end
        im.tooltip("Delete Selected")
      elseif  var.selectedTab == var.enum_tabType.meshes then
        end
        im.tooltip("Add New Mesh")
        im.SameLine()
        end
        im.tooltip("Delete Selected")
      end
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua
        end
        im.tooltip(action.desc)
      end
      end
      im.tooltip(action.desc)
    end
@/lua/ge/extensions/editor/missionEditor.lua
      end
      ui_flowgraph_editor.tooltip("Save unsaved changes for this mission")
    else
      if editor.uiIconImageButton(editor.icons.save, im.ImVec2(40, 40)) then end
      ui_flowgraph_editor.tooltip("No unsaved changes for this mission")
    end
    if canTeleport then
      im.tooltip("Teleports you to the mission start trigger, make mission visible and startable and closes the editor.")
    else
    else
      im.tooltip("Either wrong level loaded, no vehicle for player, or no start trigger for mission.")
    end
    end
    im.tooltip("Mission is currently ".. (instance.unlocks.startable and "startable" or "not startable (locked)".. " (click to toggle)"))
    end
    im.tooltip("Mission is currently ".. (instance.unlocks.visible and "visible" or "not visible") .. " (click to toggle)")
    end
    im.tooltip("Edit mission start position")
      end
      im.tooltip("Open Race Editor")
      im.SameLine()
      end
      im.tooltip("Open Rally Editor")
      im.SameLine()
  end
  im.tooltip(missionData.id)
end
      editor.uiIconImage(editor.icons.check, im.ImVec2(24,24), im.ImVec4(0,1,0,1))
      im.tooltip("This ID is available.")
    else
      editor.uiIconImage(editor.icons.error_outline, im.ImVec2(24,24), im.ImVec4(1,0,0,1))
      im.tooltip("This ID is already taken!")
    end
        if saveable then
          im.tooltip(dumps(lastShownMission.id) .. " to " .. lastShownMission.missionFolder .. "/info.json")
        end
          end
          if lastShownMission then im.tooltip("Deletes the folder " .. lastShownMission.missionFolder.."!") end
          if not saveable then im.EndDisabled() end
        end
        im.tooltip("Can take a few seconds.")
        if im.MenuItem1("Show All Mission Issues") then
          end
          im.tooltip("This will a few seconds, check the log for progress!")
          end
          im.tooltip("This will a few seconds, check the log for progress!")
          im.EndMenu()
@/lua/ge/extensions/editor/flowgraph/properties.lua
        if pin.fixed then
          im.Text(pin.name) im.tooltip("Fixed pins name can't be changed.")
        else
        if pin.fixed then
          im.Text(pin.name) im.tooltip("Fixed pins name can't be changed.")
        else
          end
          im.tooltip("Delete this pin.")
          im.SameLine()
      if ht.tooltip then
        im.tooltip(ht.tooltip)
      end
          end
          ui_flowgraph_editor.tooltip("Show this pin")
        else
          if firstLink then
            ui_flowgraph_editor.tooltip("Remove all links to hide this pin.")
          else
          else
            ui_flowgraph_editor.tooltip("Hide this pin")
          end
        im.TextUnformatted(pin.name)
        ui_flowgraph_editor.tooltip(pin.description or "")
        im.NextColumn()
        im.TextUnformatted(pin.name)
        ui_flowgraph_editor.tooltip(pin.description or "")
        im.NextColumn()
      end
      ui_flowgraph_editor.tooltip("Deletes this graph.")
      if im.Button("Clear Graph") then
      end
      ui_flowgraph_editor.tooltip("Clears all nodes and links in this graph.")
      if im.Button("Copy Graph") then
      end
      ui_flowgraph_editor.tooltip("Creates a copy of this graph.")
      if graph.type == "graph"  and graph.parentId ~= nil then
        end
        ui_flowgraph_editor.tooltip("Converts this Subgraph and all its children to Macro")
      end
@/lua/ge/extensions/flowgraph/nodes/logic/select.lua
        end
        ui_flowgraph_editor.tooltip(fun.desc)
      end
@/lua/ge/extensions/editor/flowgraph/references.lua
      end
      im.tooltip(modeData.tooltip)
    end
      end
      ui_flowgraph_editor.tooltip("Inspect Node")
      if n.nodeName == self.inspectedNode then
        end
        ui_flowgraph_editor.tooltip("Open Project")
@/lua/ge/extensions/editor/api/core.lua
    end
    imgui.tooltip("Save the data of all tool windows")
    imgui.SameLine()
    end
    imgui.tooltip("Save the data of the selected tool windows")
    imgui.SameLine()
    end
    imgui.tooltip("Do not save any tool data")
    imgui.SameLine()
@/lua/common/extensions/ui/flowgraph/editor.lua
          im.Text("Locked Type")
          ui_flowgraph_editor.tooltip("Type Locked (viewmode to debug to change)")
          im.SameLine()
          im.Text("Merging")
          ui_flowgraph_editor.tooltip("Dictates what happens when multiple values will be set in the same frame.")
          im.SameLine()
        end
        ui_flowgraph_editor.tooltip("Checking this will show this variable in the Tool Window.")
        end
        ui_flowgraph_editor.tooltip("Checking this will keep the variables value after stopping the execution, instead of resetting to its base value.")
      end
@/lua/ge/extensions/editor/raceEditor/timeTrials.lua
  if editor.uiInputText("Name", nameText, 1024, nil, nil, nil, editEnded) then
  end im.tooltip("The name of the track.")
  if editEnded[0] then
  if editor.uiInputTextMultiline("Description", descText, 2048, im.ImVec2(0,60), nil, nil, nil, editEnded) then
  end im.tooltip("The description of the track.")
  if editEnded[0] then
  if editor.uiInputText("Authors", authorsText, 1024, nil, nil, nil, editEnded) then
  end im.tooltip("Who made this track.")
  if editEnded[0] then
    im.EndCombo()
  end im.tooltip("How difficult this track is.")
    end
    im.tooltip("Found at " .. self.previewPath.."\nClick to refresh.")
  else
    editor.uiIconImage(editor.icons.error_outline, im.ImVec2(24, 24))
    im.tooltip("None found at " .. self.previewPath.."\nClick to refresh.")
  end
    im.Separator()
    im.Text(pn.name) im.tooltip(pn.tt)
    self:drawPrefabs(pn.fieldName, self.path._fnWithoutExt..pn.prefix..'.prefab')
function C:displayClassification(classification, name, field, tt)
  im.Text(name) im.SameLine() im.tooltip(tt or "")
  if classification[field] then
  end
  im.tooltip(tt or "")
end
    editor.uiIconImage(editor.icons.check, im.ImVec2(24, 24))
    im.tooltip("Found file at " .. at)
  else

    im.tooltip(str)
  end
  im.PushItemWidth(232)
  editor.uiInputText("##prefab"..default..fieldName, im.ArrayChar(1024,default), 1024) im.tooltip("This Prefab is always loaded automatically if existing.")
  im.SameLine() self:existsIcon(default, true)
@/lua/ge/extensions/career/modules/linearTutorial.lua
        end
        im.tooltip(file[2])
      end
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
  if e.displayOptions.tooltip then
    im.tooltip(e.displayOptions.tooltip)
  end
    editor.uiIconImage(editor.icons.star, imVec16x16 ,imVec4TransparentWhite)
    im.tooltip("Associated to star " .. dumps(e.displayOptions.associatedStars))
  end
    if im.IsItemHovered() then
      im.tooltip(e._translated)
    end
        if e.displayOptions.valueTooltips and e.displayOptions.valueTooltips[v] then
          im.tooltip(e.valueTooltips[v])
        end
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip("Found file at " .. file)
  else
    editor.uiIconImage(editor.icons.error_outline, imVec24x24, imVec4Red)
    im.tooltip("No file at " .. file)
  end
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip(e.foundFile)
    im.SameLine()
      editor.uiIconImage(editor.icons.warning, imVec24x24,imVec4Yellow )
      im.tooltip("This file is optional: "..files)
      im.SameLine()
      editor.uiIconImage(editor.icons.error_outline, imVec24x24,imVec4Red )
      im.tooltip("Requiring one of these files: " .. files)
      im.SameLine()
  end
  im.tooltip("Saves to " .. ffi.string(e.ac))
end
  end
  im.tooltip("Saves to " .. ffi.string(e.ac))
end
      if e.valueTooltips[v] then
        im.tooltip(e.valueTooltips[v])
      end
local function decoHeaderDraw(e, mtd) im.PushFont3("cairo_regular_medium") im.TextColored(e.color, e.text) im.PopFont() end
local function decoTextDraw(e, mtd) im.Columns(2) im.SetColumnWidth(0,columnWidth) im.Dummy(im.ImVec2(1,1)) im.NextColumn() im.TextWrapped(e.text) if e.tooltip then im.tooltip(e.tooltip) end im.Columns(1) end
local separatorColor = im.GetColorU322(im.ImVec4(1,1,1,0.5))
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua
  end
  im.tooltip("Copies the custom fields of this object to use for other objects.")
  im.SameLine()
  end
  im.tooltip("Pastes the stored custom fields into this object.")
end
@/inspector/Views/DetailsSectionSimpleRow.js

    get tooltip()
    {

    set tooltip(x)
    {
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/linkedSet.lua
  -- end
  -- im.tooltip("Add property")
  end
  im.tooltip("Add property")
  end
  im.tooltip("Add linked set layer.\nA linked set sets the properties of all child layers to a certain value.\nProperties can be added in the inspector.")
end
@/lua/ge/extensions/editor/missionEditor/prefabs.lua
      editor.uiIconImage(editor.icons.check, im.ImVec2(24, 24))
      im.tooltip("Found file at " .. file)
      im.SameLine()
      editor.uiIconImage(editor.icons.error_outline, im.ImVec2(24, 24))
      im.tooltip("No file at " .. file)
    end
@/lua/ge/extensions/editor/util/plotHelperUtil.lua
        local name = format.name or ("Series " .. r)
        im.tooltip(name .. " (" .. strX .. ", " .. strY .. ")")
      end
@/lua/ge/extensions/editor/flowgraph/variables.lua
    im.TextColored(separatorColor, "|")
    ui_flowgraph_editor.tooltip("These variables are only available in this graph.")
    im.SameLine()
    end
    ui_flowgraph_editor.tooltip("Create a new variable.")
    if not self.mgr.allowEditing then im.EndDisabled() end
    im.PopFont()
    ui_flowgraph_editor.tooltip("These variables are available in the whole project.")
    im.SameLine()
    end
    ui_flowgraph_editor.tooltip("Create a new variable.")
    if not self.mgr.allowEditing then im.EndDisabled() end
    im.PopFont()
    ui_flowgraph_editor.tooltip("These variables are not available here.")
    self:drawSortedGraphs(self.mgr.graphs)
        editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
        im.tooltip("This name is available.")
      else
        editor.uiIconImage(editor.icons.error_outline, imVec24x24, imVec4Red)
        im.tooltip("This name is used or invalid.")
      end
    end
    ui_flowgraph_editor.tooltip("Creates a getter node for this variable. (Drag and Drop also works)")
    end
    ui_flowgraph_editor.tooltip("Creates a setter node for this variable. (Drag and Drop also works)")
    im.SameLine()
@/lua/ge/extensions/editor/toolUtilities/meshAuditionMgr.lua
      im.InputText("###7377", meshFilterBuf, 64)
      im.tooltip("Type to filter static meshes by name.")
      im.PopItemWidth()
      end
      im.tooltip('Select a folder to search for static meshes.')
      end
      im.tooltip('Reset to default folders.')
          wCtr = wCtr + 1
          im.tooltip('Select this static mesh for: [' .. meshTarget .. ']')
          im.Separator()
@/lua/ge/extensions/editor/decalSpline.lua
    end
    im.tooltip('Add a new decal spline.')
    im.SameLine()
    end
    im.tooltip('Import decal splines from a bitmap mask.')
    im.SameLine()
      end
      im.tooltip('Remove all (enabled and not linked) decal splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the decal spline to move nodes separately' or 'Lock the shape of the decal spline to move nodes rigidly'))
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Decal Splines.')
    else
      end
      im.tooltip('Saves Decal State to disk.')
    else
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This decal spline is linked to a Master Spline. To edit or remove it, first unlink it from within the Master Spline Editor.')
          elseif not spline.isEnabled then
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This decal spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the decal spline name.')
            if im.IsItemActive() then
            end
            im.tooltip('Remove this decal spline from the session.')
          else
            end
            im.tooltip((spline.isEnabled and 'Disable' or 'Enable') .. ' this decal spline.')
          else
        end
        im.tooltip('Go to this decal spline (move camera).')
      else
        end
        im.tooltip('Splits the selected decal spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected decal spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected decal spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Saves the template of the selected decal spline to disk.')
      else
        end
        im.tooltip('Sets the selected decal spline to a template loaded from disk.')
      else
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the longitudinal spacing between each decal component.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the decal components.')
      if im.IsItemActivated() then
      end
      im.tooltip('Select a new material for Component 1.')
      im.SameLine()
      im.TextColored(cols.redB, ('[' ..selSpline.component1Material .. ']') or '[Not Set]')
      im.tooltip('The currently-selected material for Component 1.')
      im.NextColumn()
      end
      im.tooltip('Enable/Disable Component 2.')
      im.SameLine()
      end
      im.tooltip('Select a new material for Component 2.')
      im.SameLine()
      im.TextColored(cols.redB, ('[' ..selSpline.component2Material .. ']') or '[Not Set]')
      im.tooltip('The currently-selected material for Component 2.')
      im.NextColumn()
      end
      im.tooltip('Enable/Disable Component 3.')
      im.SameLine()
      end
      im.tooltip('Select a new material for Component 3.')
      im.SameLine()
      im.TextColored(cols.redB, ('[' ..selSpline.component3Material .. ']') or '[Not Set]')
      im.tooltip('The currently-selected material for Component 3.')
      im.NextColumn()
      end
      im.tooltip('Enable/Disable Component 4.')
      im.SameLine()
      end
      im.tooltip('Select a new material for Component 4.')
      im.SameLine()
      im.TextColored(cols.redB, ('[' ..selSpline.component4Material .. ']') or '[Not Set]')
      im.tooltip('The currently-selected material for Component 4.')
      im.NextColumn()
        end
        im.tooltip('Use a round robin pattern for the decal components.')
        im.SameLine()
        end
        im.tooltip('Use a random pattern for the decal components.')
        im.NextColumn()
            end
            im.tooltip("Reset to default")
          else
          end
          im.tooltip("Set the random seed for the decal components.")
          if im.IsItemActivated() then
            end
            im.tooltip("Reset to default")
          else
          end
          im.tooltip("Set the weight (similar to probability) of component 1.")
          if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip("Set the weight (similar to probability) of component 2.")
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip("Set the weight (similar to probability) of component 3.")
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip("Set the weight (similar to probability) of component 4.")
            if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of rows of Component 1.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of columns of Component 1.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the frame of Component 1 (after tiling by the number of rows and columns).')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the scale of Component 1.')
              if im.IsItemActivated() then
              end
              im.tooltip('Set the rotation to 0°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 90°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 180°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 270°.')
              im.NextColumn()
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of rows of Component 2.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of columns of Component 2.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the frame of Component 2 (after tiling by the number of rows and columns).')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the scale of Component 2.')
              if im.IsItemActivated() then
              end
              im.tooltip('Set the rotation to 0°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 90°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 180°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 270°.')
              im.NextColumn()
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of rows of Component 3.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of columns of Component 3.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the frame of Component 3 (after tiling by the number of rows and columns).')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the scale of Component 3.')
              if im.IsItemActivated() then
              end
              im.tooltip('Set the rotation to 0°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 90°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 180°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 270°.')
              im.NextColumn()
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of rows of Component 4.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the number of columns of Component 4.')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the frame of Component 4 (after tiling by the number of rows and columns).')
              if im.IsItemActivated() then
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip('Set the scale of Component 4.')
              if im.IsItemActivated() then
              end
              im.tooltip('Set the rotation to 0°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 90°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 180°.')
              im.SameLine()
              end
              im.tooltip('Set the rotation to 270°.')
              im.NextColumn()
@/lua/ge/extensions/editor/dynamicDecals/fonts.lua
            )
            im.tooltip("Double-click to select character as decal texture")
            if im.IsItemHovered() and im.IsMouseDoubleClicked(0) then
          )
          im.tooltip(string.format("%d : %s\nxadvance: %f", i, i == 32 and "space" or string.char(i), char.xadvance))
          im.SameLine()
          )
          im.tooltip(string.format("%d : %s\nxadvance: %f", i, i == 32 and "space" or string.char(i), char.xadvance))
          im.SameLine()
  end
  im.tooltip("Change font")
@/lua/ge/extensions/editor/roadEditor.lua
  end
  im.tooltip("Make roads that are used by AI hoverable and clickable")
  end
  im.tooltip("Make roads that are not used by AI hoverable and clickable")
  end
  im.tooltip("Make roads that go over static objects too")
@/lua/ge/extensions/editor/materialEditor.lua
    end
    im.tooltip(tostring(#items) .. " issue(s)")
  end
  im.tooltip("Remove " .. label)
  im.PopID()
  end
  im.tooltip("Open file dialog")
  im.SameLine()
  end
  im.tooltip("Open in explorer")
  end
  im.tooltip("Open file dialog")
  im.SameLine()
  if tooltip then
    im.tooltip(tooltip .. "\n" .. selectedCubemapObj:getField("cubeFace", index))
  else
  else
    im.tooltip(selectedCubemapObj:getField("cubeFace", index))
  end
  im.PopItemWidth()
  im.tooltip("None = Material doesn't use any reflection information\nLevel = Material uses reflection information from the level\nCubemap = Material uses reflection information from a custom cubemap")
    if residesInJson then
      im.tooltip("Edit current material's name.\nChanges won't take effect until reloading the map.")
    else
    end
    im.tooltip("Enable to pick a material from a mesh.")
    im.NextColumn()
      if disabled then im.EndDisabled() end
      im.tooltip(currentMaterial.activeLayers >= maxLayers and "You can't have more than " .. tostring(maxLayers) .. " layers" or "Add layer")
      im.SameLine()
      if disabled then im.EndDisabled() end
      im.tooltip(currentMaterial.activeLayers <= 1 and "You have to have at least one layer" or "Remove layer")
      im.NextColumn()
    end
    im.tooltip("Background Color")
    im.SetCursorPos(cPosB)
    end
    im.tooltip("Background Color")
    im.SetCursorPos(cPosB)
  end
  im.tooltip("New material")
  end
  im.tooltip("Open materials by tag window")
  end
  im.tooltip("Reload textures of current material")
    if residesInJson then
      im.tooltip("Delete current material.\nChanges won't take effect until reloading the map.")
    else
  end
  im.tooltip("Pick an Object From Scene To Show its Materials")
  end
  im.tooltip("Shows All Loaded Materials")
      end
      im.tooltip("Enable to pick a material from a mesh.")
      im.PopStyleColor()
      end
      im.tooltip("Refresh Preview Mesh List\n\nThe tool fetches all dae files from `\\art\\shapes\\material_preview`")
      im.PopItemWidth()
        editor.uiIconImageButton(editor.icons.warning, im.ImVec2(v.inputWidgetHeight, v.inputWidgetHeight), editor.color.warning.Value)
        im.tooltip("The selected object either has no materials assigned to it or all the materials were auto-generated and can't be changed using the material editor.")
      end
        end
        im.tooltip("Save current material")
      end
@/lua/ge/extensions/editor/dynamicDecals/colorHistory.lua
    end
    im.tooltip("Remove color from history")
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua
      end
      ui_flowgraph_editor.tooltip(fun.description or "")
    end
@/lua/ge/extensions/flowgraph/nodes/types/getVariable.lua
    im.Text("???")
    ui_flowgraph_editor.tooltip("Variable missing..?")
  end
@/lua/ge/extensions/flowgraph/nodes/debug/comment.lua
    end
    ui_flowgraph_editor.tooltip("Whether or not nodes inside will be attached to this node.")
  end
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/path.lua
    im.ColorButton(string.format("##%s_%s_%s", layer.uid, guiId, "inspector_colorpalettemapidbutton"), editor.getTempImVec4_TableTable(col))
    im.tooltip("Vehicle color palette color")
  end
  end
  im.tooltip("Flip decal horizontally")
  im.PopStyleColor()
  end
  im.tooltip("Flip decal vertically")
  im.PopStyleColor()
  end
  im.tooltip("alpha mask rotation in degrees")
  im.PopItemWidth()
        end
        im.tooltip("Reset to default")
      end
    end
    im.tooltip("Reverses the order of the data points")
    end
    im.tooltip("Hover the button to show the position of the data points in the 3d viewport")
      end
      im.tooltip("Remove entry")
      im.SameLine()
      end
      im.tooltip("Insert entry")
      if k == count then im.EndDisabled() end
      end
      im.tooltip("Move data point")
      if im.IsItemHovered() then
      end
      im.tooltip("Move path point")
      im.SameLine()
    end
    im.tooltip("Finish path layer")
    end
    im.tooltip("Remove last path layer data point")
      if #property.description > 0 then
        im.tooltip(property.description)
      end
      end
      im.tooltip("- Click to highlight property -")
    end
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua
  end
  im.tooltip("Force a refresh of distance calls and punctuation.")
  end
  im.tooltip("Delete all pacenotes from this notebook.")
  if im.BeginPopupModal("Delete All", nil, im.WindowFlags_AlwaysAutoResize) then
    im.PushStyleColor2(im.Col_Text, cc.clr_error)
    im.tooltip(issues)
    im.PopStyleColor()
    if note:is_valid() then
      im.tooltip(tooltipText)
    else
    else
      im.tooltip("[!] Found "..(#note.validation_issues).." issue(s).\n"..tooltipText)
    end
@/lua/ge/extensions/editor/flowgraph/events.lua
      end
      ui_flowgraph_editor.tooltip("Project Time: " ..formatTime(e.time - self.mgr.startTime))
      ui_flowgraph_editor.tooltip("Global Time: " .. e.globalTime)
      ui_flowgraph_editor.tooltip("Project Time: " ..formatTime(e.time - self.mgr.startTime))
      ui_flowgraph_editor.tooltip("Global Time: " .. e.globalTime)
      ui_flowgraph_editor.tooltip("Frame: " .. dumps(e.frame))
      ui_flowgraph_editor.tooltip("Global Time: " .. e.globalTime)
      ui_flowgraph_editor.tooltip("Frame: " .. dumps(e.frame))
      im.NextColumn()
      im.TextColored(logColors[e.type] or colWhite, e.type)
      ui_flowgraph_editor.tooltip(logNames[e.type] or e.type)
      im.NextColumn()
      if e.description and e.description ~= "" then
        ui_flowgraph_editor.tooltip(e.description)
      end
  if e.meta.type == 'node' and e.meta.node then
    ui_flowgraph_editor.tooltip("Double Click to jump to " .. e.meta.node.name.."/"..e.meta.node.id)
    if im.IsItemHovered() and im.IsMouseDoubleClicked(0) then
  if e.meta.type == 'graph' and e.meta.graph then
    ui_flowgraph_editor.tooltip("Double Click to jump to " .. e.meta.graph.name.."/"..e.meta.graph.id)
    if im.IsItemHovered() and im.IsMouseDoubleClicked(0) then
@/lua/ge/extensions/editor/missionEditor/genericTypeData.lua
          im.Text(elem.fieldName)
          im.tooltip(elem.fieldName .." with type: " .. dumps(elem.type))
          im.NextColumn()
          im.Text(elem.fieldName)
          im.tooltip(elem.fieldName .." with type: " .. dumps(elem.typeInFG) .. " but should be: " .. dumps(elem.type))
          im.NextColumn()
          im.Text(elem.fieldName)
          im.tooltip(elem.fieldName .." with type: " .. dumps(elem.type))
          im.NextColumn()
          im.Text(elem.name)
          im.tooltip(elem.name .." with type: " .. dumps(elem.type))
        end
    end
    im.tooltip(dumps(self.mtdIssues))
  else
@/lua/ge/extensions/editor/raceEditor/tools.lua
    editor.uiIconImage(editor.icons.check, im.ImVec2(24, 24))
    im.tooltip("Found file at "..f)
  else
    editor.uiIconImage(editor.icons.error_outline, im.ImVec2(24, 24))
    im.tooltip("No file at "..f)
  end
      self:createDecoration(allTransforms)
    end im.tooltip("Creates a new group with the decoration")
    if lastGroup then
        self:createDecoration(allTransforms)
      end im.tooltip("Removes the old group and creates a new one.") im.SameLine()
        lastGroup = nil
      end if lastGroup then im.tooltip("Removes " .. lastGroup.name) end
    end
  end
  im.tooltip("Opens as separate windows to test the current track.\nThe test track will only have debug visualizations.\nYou can return to this editor by closing the test window.")
  im.SameLine()
  local cpx = im.GetCursorPosX()
  im.Text(name) im.SameLine() im.SetCursorPosX(cpx + 90) im.tooltip(tt or "")
  if classification[field] then
  end
  im.tooltip(tt or "")
end
  end
  im.tooltip(tt or "")
end
@/lua/ge/extensions/editor/api/gui.lua
  end
  imgui.tooltip("Go to `" .. topicName .. "` help")
end
  if label and label ~= "" then
    imgui.tooltip(label)
  end
  imgui.PopItemWidth()
  imgui.tooltip("Select file...")
    end
    imgui.tooltip(string.format("Decrease by %.2f\nDecrease by %.2f while holding ctrl", step, step_fast))
    imgui.SameLine()
    end
    imgui.tooltip(string.format("Increase by %.2f\nIncrease by %.2f while holding ctrl", step, step_fast))
  end
@/lua/ge/extensions/editor/gen/lib/ui.lua
                im.NextColumn()
    --                    im.tooltip('Favo')
                im.Text('Shape type')
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
                end
                im.tooltip('Default scale')
]]
@/lua/ge/extensions/editor/rallyEditor/pacenotes/pacenoteForm.lua
  end
  im.tooltip(tooltipStr)
  im.Text(codriverHelpTxt)
  im.tooltip(codriverHelpTxt)
  end
  im.tooltip(dumps(pacenote:getNoteFieldStructured()))
end
    im.PushStyleColor2(im.Col_Text, cc.clr_error)
    im.tooltip(issues)
    im.PopStyleColor()
  end
  im.tooltip("Override the audio mode just for this pacenote.")
  im.TextColored(im.ImVec4(0, 1, 1, 1), "(?)")
  im.tooltip("Default: unchecked\nWhen checked, the next corner will be delayed until this corner is reached.")
  end
  im.tooltip("Makes this pacenote's timing later.")
  im.TextColored(im.ImVec4(0, 1, 1, 1), "(?)")
  im.tooltip("Default: checked\nReset the automatic odometer after the pacenote used for calculating distance calls.\n\nWhen unchecked, this pacenote will be skipped and the distance\ncall will be calculated between the previous and next pacenotes.")
  end
  im.tooltip("Makes this pacenote's timing later.")
  im.TextColored(im.ImVec4(0, 1, 1, 1), "(?)")
  im.tooltip("Default: unchecked\nWhen checked, distance call will not be included in this pacenote.")
  -- end
  -- im.tooltip(playbackRulesHelpText)
@/lua/ge/extensions/editor/drivePathEditor.lua
      end
      im.tooltip('Add a new drive path spline.')
    else
      end
      im.tooltip('Import drive path splines from a bitmap mask.')
    else
      end
      im.tooltip('Remove all drive path splines from the session.')
    else
      end
      im.tooltip(isBarsLimit and 'Switch to edit vehicle speeds with vertical bars.' or 'Switch to edit speed limits with vertical bars.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the drive path spline to move nodes separately' or 'Lock the shape of the drive path spline to move nodes rigidly'))
    else
      end
      im.tooltip('Save the current session to disk.')
    else
    end
    im.tooltip('Load a previously-saved session from disk.')
    im.NextColumn()
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This drive path spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the drive path spline name.')
            if im.IsItemActive() then
            end
            im.tooltip('Remove this drive path spline from the session.')
          else
            end
            im.tooltip((spline.isEnabled and 'Disable' or 'Enable') .. ' this drive path spline.')
          else
              end
              im.tooltip('Unlink this drive path spline from its vehicle.')
            else
                end
                im.tooltip('Link this drive path spline to its vehicle.')
              else
        end
        im.tooltip('Go to this drive path spline (move camera).')
      else
        end
        im.tooltip('Flip the selected drive path spline back to front.')
      else
        end
        im.tooltip('Splits the selected drive path spline into two, at the selected node.')
      else
        end
        im.tooltip('Simplifies the selected drive path spline (reduces the number of nodes).')
      else
          im.Text(vehicle.name)
          im.tooltip('Select this vehicle.')
          if im.IsItemActive() then
            end
            im.tooltip('Remove this vehicle from the session.')
          else
            end
            im.tooltip('Go to this vehicle (move camera).')
          else
              end
              im.tooltip('Unlink this vehicle from its drive path spline.')
            else
                end
                im.tooltip('Link this vehicle to the selected drive path spline.')
              else
        end
        im.tooltip('Refresh the scene vehicles list.')
      else
        end
        im.tooltip(isRenderSplineWhenPlaying and 'Hide the splines when playing.' or 'Show the spline when playing.')
      else
        end
        im.tooltip(isPlaying and 'Click to stop playback.' or 'Click to start playback (all linked vehicles in session).')
      else
        end
        im.tooltip(isRecording and 'Click to stop recording.' or 'Click to start recording (selected vehicle).')
      else
      end
      im.tooltip('m/s.')
      im.SameLine()
      end
      im.tooltip('mph.')
      im.SameLine()
      end
      im.tooltip('kph.')
      im.NextColumn()
    end
    im.tooltip('NavGraph Mode: create waypoint-to-waypoint paths on the navigation graph.')
    im.SameLine()
    end
    im.tooltip('Free Mode: create paths freely on the map.')
    im.NextColumn()
    end
    im.tooltip('Set: set the route speed for the drive path spline.')
    im.SameLine()
    end
    im.tooltip('Limit: limit the route speed for the drive path spline.')
    im.NextColumn()
      end
      im.tooltip("Reset to default")
    else
    end
    im.tooltip('Set the starting delay time for the selected spline, in seconds.')
    if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the starting node for the selected spline.')
      if im.IsItemActivated() then
      end
      im.tooltip("Reset to default")
    else
    end
    im.tooltip('Set the route speed of the drive path spline, in meters per second.')
    if im.IsItemActivated() then
      end
      im.tooltip("Reset to default")
    else
    end
    im.tooltip('Set the amount of aggression for the drive path spline.')
    if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the number of laps for the drive path spline.')
      if im.IsItemActivated() then
    end
    im.tooltip('Sets the driveInLane flag for the drive path spline.')
    im.SameLine()
    end
    im.tooltip('Sets the avoidCars flag for the drive path spline.')
    im.NextColumn()
@/inspector/Views/TreeElement.js

    get tooltip()
    {

    set tooltip(x)
    {
@/lua/ge/extensions/editor/roadSpline.lua
    end
    im.tooltip('Add a new road spline.')
    im.SameLine()
    end
    im.tooltip('Import road splines from a bitmap mask.')
    im.SameLine()
    end
    im.tooltip(isDrawPolygon and 'Click to stop drawing a selection polygon.' or 'Click to draw a selection polygon, to convert scene objects to a Road Spline.')
    im.SameLine()
      end
      im.tooltip('Remove all road splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the road spline to move nodes separately' or 'Lock the shape of the road spline to move nodes rigidly'))
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Road Splines.')
    else
            im.TextColored(cols.dullWhite, group.name)
            im.tooltip('This road spline is linked to a Master Spline. To edit or remove it, first unlink it from within the Master Spline Editor.')
          elseif not group.isEnabled then
            im.TextColored(cols.dullWhite, group.name)
            im.tooltip('This road spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the road spline name.')
            if im.IsItemActive() then
            end
            im.tooltip("Remove this road spline from the session.")
          else
            end
            im.tooltip((group.isEnabled and 'Disable' or 'Enable') .. ' this road spline.')
          else
        end
        im.tooltip('Move the camera to the selected Road Spline.')
      else
        end
        im.tooltip('Splits the selected road spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected road spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected road spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Saves the selected profile to disk.')
      else
        end
        im.tooltip('Loads a previously-saved profile from disk.')
      else
      end
      im.tooltip('Toggle whether all layers in this spline should render over other objects.')
      im.Dummy(im.ImVec2(0, 3))
          end
          im.tooltip('Toggle whether to include light tread marks on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include heavy tread marks on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include repair 1 fixes on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include repair 2 fixes on the Road Spline.')
          im.NextColumn()
          end
          im.tooltip('Toggle whether to include damaged asphalt wear 1 on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include damaged asphalt wear 2 on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include patches on the Road Spline.')
          im.SameLine()
          end
          im.tooltip('Toggle whether to include road cracks on the Road Spline.')
          im.NextColumn()
          end
          im.tooltip(((selGroup.isRoadCenterLine and 'Disable') or 'Enable') .. ' the road center line.')
          im.SameLine()
          end
          im.tooltip(((selGroup.isRoadEdgeLines and 'Disable') or 'Enable') .. ' the road edge lines.')
          im.SameLine()
          end
          im.tooltip(((selGroup.isRoadLaneLines and 'Disable') or 'Enable') .. ' the road lane lines.')
          im.SameLine()
          end
          im.tooltip(((selGroup.isEdgeBlend1 and 'Disable') or 'Enable') .. ' the edge blend 1.')
          im.SameLine()
          end
          im.tooltip(((selGroup.isEdgeBlend2 and 'Disable') or 'Enable') .. ' the edge blend 2.')
          im.SameLine()
          end
          im.tooltip(((selGroup.isEdgeBlend3 and 'Disable') or 'Enable') .. ' the edge blend 3.')
          im.PopStyleVar(2)
                    im.TextColored(cols.dullWhite, layer.name)
                    im.tooltip('This layer is disabled.')
                  else
                    end
                    im.tooltip('Edit the layer name.')
                    if im.IsItemActive() then
                    end
                    im.tooltip('Remove this layer from the Road Spline.')
                  end
                  end
                  im.tooltip(layer.isEnabled and "Disable this layer (content will be removed from the Road Spline)" or "Enable this layer (content will be included in the Road Spline)")
                  im.NextColumn()
            end
            im.tooltip('Add a new layer to the selected Road Spline.')
          else
            end
            im.tooltip("Duplicate the selected layer.")
          else
            end
            im.tooltip('Remove all user-created layers from the selected Road Spline. Auto-generated layers will be preserved.')
          else
            end
            im.tooltip('Select a new material for the selected layer.')
            im.SameLine()
            im.Text('Material: [' .. (selectedLayer.material or 'Not Selected') .. ']')
            im.tooltip('The currently-selected material for this layer.')
            im.Columns(1)
            end
            im.tooltip('Toggle whether this layer should be flipped left <--> right.')
            im.NextColumn()
            end
            im.tooltip('Toggle whether this layer should track the width of the group spline (checked), or use its own fixed width (unchecked).')
            im.NextColumn()
              end
              im.tooltip("Reset to default")
            else
              end
              im.tooltip('Set the width of the layer.')
              if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the lateral position of the layer (-1.0 = left edge, 0.0 = center, 1.0 = right edge).')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the texture length of the layer.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the render priority of the layer.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the fade in of the layer.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the fade out of the layer.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the margin around the road spline for terrain painting.')
            if im.IsItemActivated() then
              end
              im.tooltip("Reset to default")
            else
            end
            im.tooltip('Set the material to be used with terrain painting.')
            if im.IsItemActivated() then
            end
            im.tooltip('Switch terrain painting ' .. ((selGroup.isPainting and 'off') or 'on') .. '.')
            im.PopStyleVar(2)
@/lua/ge/extensions/editor/flowgraphEditor.lua
                im.EndDisabled()
                ui_flowgraph_editor.tooltip("No File Found under " .. dumps(file) .. " !")
              end
    end
    ui_flowgraph_editor.tooltip("Maximize Editor.")
    im.SameLine()
      end
      ui_flowgraph_editor.tooltip("Stop Execution")
      im.SameLine()
  end
  im.tooltip("Resets the recently used node data. This data is used to improve the accuracy of search in the node library, by putting nodes you use more often at the top of the results.")
end
@/lua/ge/extensions/editor/missionEditor/setupModules.lua
    end
    im.tooltip("Adds a vehicle that the user can choose to use for this mission.")
    end
    im.tooltip("If true, the current player vehicle can be used for the mission.")
    if not setupModule.includePlayerVehicle then
    end
    im.tooltip("If true, the current player vehicle becomes the default vehicle for the mission.")
    end
    im.tooltip("Amount of traffic vehicles to spawn; -1 = auto amount")
    im.PopItemWidth()
    end
    im.tooltip("Amount of active traffic vehicles running at the same time; other vehicles stay hidden until they get cycled.")
    im.PopItemWidth()
    end
    im.tooltip("Amount of parked vehicles to spawn.")
    im.PopItemWidth()
    end
    im.tooltip("Traffic respawn rate; values can range from 0 to 3.")
    im.PopItemWidth()
    end
    im.tooltip("If true, this mission will start with traffic enabled unless the user changes the setting.")
    end
    im.tooltip("If true, this mission will try to use traffic that already existed in freeroam.")
    end
    im.tooltip("If true, enables a custom vehicle group to use for traffic.")
    if setupModule.useCustomGroup then
    end
    im.tooltip("Set to 0 to ignore this setting.")
    im.PopItemWidth()
    end
    im.tooltip("Use very low values for typical fog conditions (such as 0.05).")
    im.PopItemWidth()
    end
    im.tooltip("If true, the user can set the mission time of day.")
    im.PopItemWidth()
@/lua/ge/extensions/editor/assetDeduplicator.lua
      end
      im.tooltip("Linking with mods might be risky")
      im.Separator()
@/lua/ge/extensions/editor/toolUtilities/materialSelectionMgr.lua
    im.PopID()
    im.tooltip("Type to filter material names by name.")
    im.Separator()
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/group.lua
  end
  im.tooltip("Add group")
end
@/lua/ge/extensions/flowgraph/nodes/input/blacklistAction.lua
      im.Text(preset.name)
      im.tooltip("(" .. #preset.list .. " Actions) " .. preset.desc)
      im.SameLine()
      end
      im.tooltip("Sets the list to exactly this preset.")
      im.SameLine()
      end
      im.tooltip("Adds all actions from this preset to the nodes list.")
      im.SameLine()
      end
      im.tooltip("Removes all actions from this preset to the nodes list.")
    end
        end
        im.tooltip(result.info.desc)
      end
          end
          im.tooltip(allActions[name].desc)
        end
@/lua/ge/extensions/editor/dynamicDecals/brushes.lua
  if saveBrushButtonPressed then saveBrushesToFile() end
  im.tooltip("save changes")
        end
        im.tooltip(brush.name or "")
        im.SameLine()
@/lua/ge/extensions/editor/rallyEditor/pacenotes/structuredForm.lua
  im.HeaderText("Preview - Structured")
  im.tooltip(dumps(pacenote.structured.fields))
    end
    im.tooltip(tooltipStr)
    if i < #fnames then
  end
  im.tooltip("Open audio files folder in explorer.")
  end
  im.tooltip("Copy audio files folder path to clipboard.")
  end
  im.tooltip(tooltipText)
  if im.BeginPopupModal("Delete Audio Files", nil, im.WindowFlags_AlwaysAutoResize) then
    im.Text(codriverHelpTxt)
    im.tooltip(codriverHelpTxt)
  elseif pacenote:getAudioMode() == RallyEnums.pacenoteAudioMode.structuredOffline then
    im.Text(codriverHelpTxt)
    im.tooltip(codriverHelpTxt)
  end
  im.TextColored(im.ImVec4(0, 1, 1, 1), "(?)")
  im.tooltip(cautionTooltip)
  -- end caution dropdown
@/lua/ge/extensions/editor/missionEditor/playbookUtils.lua
  end
  im.tooltip("Only a single star enabled, no logic for default stars etc")
  end
  im.tooltip("Each star randomly enabled or not, no logic for default stars etc")
  end
  im.tooltip("Add one attempt per star, enabling more and more")
  end
  im.tooltip("Add one attempt per star, enabling more and more")
  end
  im.tooltip("Adds one attempt per bonus star, randomly ordered")
@/lua/ge/extensions/trackbuilder/trackBuilder.lua
  if im.Button("|<",style.thinButtonSize) then tbFunctions.navigate('first') end
  im.tooltip(translateLanguage("ui.trackBuilder.selection.first", "Select First Piece"))
  im.SameLine()
  if im.Button("<",style.thinButtonSize) then tbFunctions.navigate(-1) end
  im.tooltip(translateLanguage("ui.trackBuilder.selection.previous", "Select Previous Piece"))
  im.SameLine()
  end
  im.tooltip(translateLanguage("ui.trackBuilder.camera.focus", 'Focus camera on selected piece'))
  im.SameLine()
  if im.Button(">",style.thinButtonSize) then tbFunctions.navigate(1) end
  im.tooltip(translateLanguage("ui.trackBuilder.selection.next", "Select Next Piece"))
  im.SameLine()
  if im.Button(">|",style.thinButtonSize) then tbFunctions.navigate('last') end
  im.tooltip(translateLanguage("ui.trackBuilder.selection.last", "Select Last Piece"))
end
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.modify", "Modify"))
  im.SameLine()
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.remove", "Remove"))
  im.SameLine()
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.reset", "Reset"))
  if hasInterpolation then
      dragDropSourceTextureSet(name, set)
      im.tooltip(name)
      if i % 3 ~= 0 and i ~= materialSettings.texteSetsSize then im.SameLine() end
      dragDropSourceGlowMap(name, glowMap)
      im.tooltip(name)
      if i % 3 ~= 0 and i ~= materialSettings.glowMapsSize then im.SameLine() end
  if im.Button("<##bank",style.slimButtonSize) then tbFunctions.modifierShift('bank',-1) end
  im.tooltip('Shift Modifier Back')
  im.SameLine()
  if im.Button(">##bank",style.slimButtonSize) then tbFunctions.modifierShift('bank',1) end
  im.tooltip('Shift Modifier Forward')
  if im.Button("<##height",style.slimButtonSize) then tbFunctions.modifierShift('height',-1) end
  im.tooltip('Shift Modifier Back')
  im.SameLine()
  if im.Button(">##height",style.slimButtonSize) then tbFunctions.modifierShift('height',1) end
  im.tooltip('Shift Modifier Forward')
  if im.Button("<##width",style.slimButtonSize) then tbFunctions.modifierShift('width',-1) end
  im.tooltip('Shift Modifier Back')
  im.SameLine()
  if im.Button(">##width",style.slimButtonSize) then tbFunctions.modifierShift('width',1) end
  im.tooltip('Shift Modifier Forward')
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.morning", "Morning"))
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.noon", "Noon"))
  end
  im.tooltip(translateLanguage("ui.trackBuilder.tooltip.night", "Night"))
  im.TextColored(style.textColor,translateLanguage("ui.trackBuilder.trackSettings.azimuth", 'Azimuth'))
        end
        im.tooltip(translateLanguage("ui.trackBuilder.tooltip.reset", "Reset"))
        dimensions = obstacleInfo[name].dimensions or 3
        end
        im.tooltip(translateLanguage("ui.trackBuilder.tooltip.reset", "Reset"))
        end
        im.tooltip(translateLanguage("ui.trackBuilder.tooltip.reset", "Reset"))
    end
    im.tooltip(translateLanguage("ui.trackBuilder.tooltip.addObstacle", "Add obstacle"))
  end
    end
    im.tooltip(translateLanguage("ui.trackBuilder.advanced.splitPiece", "Split Piece"))
  end
    end
    im.tooltip(translateLanguage("ui.trackBuilder.advanced.splitPiece", "Split Piece"))
    im.tooltip("Split Piece")
    im.tooltip(translateLanguage("ui.trackBuilder.advanced.splitPiece", "Split Piece"))
    im.tooltip("Split Piece")
  end
  end
  im.tooltip(translateLanguage("ui.trackBuilder.base.delete", "Delete Current Segment"))
end
  end
  im.tooltip(translateLanguage("ui.trackBuilder.base.closeTrack", "Close Track"))
end
      end
      if im.IsItemHovered() then im.tooltip(items[v].name) end
    end
      end
      if im.IsItemHovered() then im.tooltip(paintModes[name].tooltip) end
      im.SameLine()
  if im.Button("<##"..name,style.slimButtonSize) then tbFunctions.modifierShift(name,-1) end
    im.tooltip(translateLanguage("ui.trackBuilder.tooltip.shiftBack", "Shift Modifier Back"))
    im.SameLine()
    if im.Button(">##"..name,style.slimButtonSize) then tbFunctions.modifierShift(name,1) end
    im.tooltip(translateLanguage("ui.trackBuilder.tooltip.shiftForward", "Shift Modifier Forward"))
    im.SameLine()
  end
  im.tooltip(translateLanguage("ui.trackBuilder.base.testDrive",'Starts from the selected Piece'))
  --     end
  --     if im.IsItemHovered() then im.tooltip(menuItems[v].name) end
  --   end
  --     end
  --     if im.IsItemHovered() then im.tooltip(additionalMenuItems[v].name) end
  --   end
@/lua/ge/extensions/editor/missionEditor/general.lua
  if im.IsItemHovered() then
    im.tooltip(self._titleTranslated)
  end
  if im.IsItemHovered() then
    im.tooltip(self._descTranslated)
  end
@/lua/ge/extensions/editor/roadArchitect.lua
      if isFinalise then
        im.tooltip("Road Architect is in Render Mode. Click to switch back to Edit Mode.")
      else
      else
        im.tooltip("Road Architect is in Edit Mode. Click to switch to Render Mode.")
      end
    end
    im.tooltip('Toggles the road guidelines/measurements (extends from road start and end).')
    im.SameLine()
    end
    im.tooltip('Toggles the translational gimbal on/off.')
    im.SameLine()
      end
      im.tooltip('Saves the Road Architect session (to the current save file).')
    else
    end
    im.tooltip('Save As (saves a new Road Architect session).')
    im.SameLine()
    end
    im.tooltip('Loads a Road Architect session.')
    im.SameLine()
      end
      im.tooltip('Import road network from disk (OpenDRIVE .xodr).')
    else
      end
      im.tooltip('Export road network to disk, (OpenDRIVE .xodr).')
    else
      end
      im.tooltip('Show all roads (master switch).')
      im.SameLine()
      end
      im.tooltip('Show all bridges (master switch).')
      im.SameLine()
      end
      im.tooltip('Show all overlays (master switch).')
      im.NextColumn()
            im.PopItemWidth()
            im.tooltip('Edit the road name.')
            wCtr = wCtr + 1
            end
            im.tooltip('Remove this road from the session.')
            im.SameLine()
              end
              im.tooltip('Go to this road.')
            else
            im.Checkbox("Show###" .. tostring(wCtr), road.isVis)
            im.tooltip('Show this road in edit visualisation (checked), or not (unchecked).')
            wCtr = wCtr + 1
            end
            im.tooltip('The group(s) which this road belongs to, if any.')
            wCtr = wCtr + 1
      end
      im.tooltip('Add a new spline road.')
      im.SameLine()
      end
      im.tooltip('Add a new arc road.')
      im.SameLine()
      end
      im.tooltip('Add a new overlay (for tire tread markings only).')
      im.SameLine()
      end
      im.tooltip('Add a new bridge.')
      im.SameLine()
      end
      im.tooltip('Reloads the collision mesh (allows nodes to be placed on bridges after creating/moving bridge).')
      im.SameLine()
      end
      im.tooltip('Reset/clear the road network.')
      im.NextColumn()
              end
              im.tooltip('The node Id (ordered from start of road to end of road).')
              im.SameLine()
                end
                im.tooltip('Remove this node from the road.')
              else
                end
                im.tooltip('Add a new node before this node.')
              end
                end
                im.tooltip('Add a new node after this node.')
              end
                end
                im.tooltip('Edit this node (opens edit window).')
              end
                end
                im.tooltip('Unlock the highlighted node, so it can be moved.')
              else
          end
          im.tooltip('Select a new profile template for this road (warning: will undo many existing road properties).')
        else
          end
          im.tooltip('Create a new template profile from the current profile of this road (will appear in templates list, and can be saved from there).')
        else
          end
          im.tooltip('Uses line-spiral-arc-spiral-line sections (instead of splines).')
        else
          end
          im.tooltip('Split road at node, and create a gap (for junctioning).')
        else
          end
          im.tooltip('Flip the road direction. Changes reference line position on profile')
        else
          end
          im.tooltip('Unlock the highlighted node, so it can be moved.')
        else
          end
          im.tooltip('Lock the highlighted node, so that it becomes fixed in space.')
        end
          end
          im.tooltip('Conform the road to the terrain.')
        else
          end
          im.tooltip('Set the half-width of the bridge, in meters (lateral distance from center to edge).')
          if im.InputFloat("Bridge Depth (m) ###10101", road.bridgeDepth, 0.1, 0.0) then
          end
          im.tooltip('Set the depth of the bridge, in meters (vertical distance from bottom to top).')
          if im.InputFloat("Bridge Arch Amount (m) ###10102", road.bridgeArch, 0.1, 0.0) then
          end
          im.tooltip('Set the depth of the bridge, in meters (vertical distance from bottom to top).')
          im.PopItemWidth()
          end
          im.tooltip('Select a new material for this overlay (choose an edge material)')
          im.SameLine()
          im.Text(roads[mfe.selectedRoadIdx].overlayMat or 'None')
          im.tooltip('The currently-selected material for this overlay.')
          im.NextColumn()
            end
            im.tooltip('Terraform the terrain to this single road (warning: ignores other roads).')
            im.SameLine()
            end
            im.tooltip('Terraform the terrain to all roads together.')
            im.SameLine()
            end
            im.tooltip('Show the proposed terraforming range on the map, for the selected road.')
            im.SameLine()
            im.SliderInt("###49", terraParams.domainOfInfluence, 1, 500, "Domain Of Influence (m) %d")
            im.tooltip('Set the domain of influence of the terraforming, in meters.')
            im.SliderFloat("###48", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
            im.SliderFloat("###48", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
            im.tooltip('Set the terraforming margin (around road), in meters.')
            im.PopStyleVar()
            end
            im.tooltip('Set the granularity level for this road (less = coarse, more = dense).')
            im.TreePop()
            end
            im.tooltip('Set all road lanes to a master width (over-writes profile).')
            im.TreePop()
            end
            im.tooltip('Switch on/off rigid translation mode for this road.')
              im.SliderFloat("###3", road.forceField, 1.0, 205.0, "Movement Field = %.3f")
              im.tooltip('Amount of nearby elastic effect when dragging single nodes.')
            end
            end
            im.tooltip('Use auto banking on this road (applied on corners only).')
            im.SameLine()
            end
            im.tooltip('Apply extra width to hairpin corners (> 90 degrees).')
            im.NextColumn()
              end
              im.tooltip('The amount of auto-banking to apply [0.5 = half, 1 = standard, 2 = double, etc].')
            end
                  end
                  im.tooltip('The layer render priority (1 = top).')
                  wCtr = wCtr + 1
                    end
                    im.tooltip('Increase the render priority of this layer.')
                  end
                    end
                    im.tooltip('Decrease the render priority of this layer.')
                  end
                  im.PopItemWidth()
                  im.tooltip('Edit the layer name.')
                  wCtr = wCtr + 1
                  end
                  im.tooltip('Remove this layer from the session.')
                  im.SameLine()
                  end
                  im.tooltip('Add a new layer above this layer.')
                  im.SameLine()
                  end
                  im.tooltip('Add a new layer below this layer.')
                  im.SameLine()
                  wCtr = wCtr + 1
                  im.tooltip('Highlights the layer on the road visualization.')
                  im.NextColumn()
            end
            im.tooltip('Adds a new layer.')
              im.RadioButton2("L-Span###" .. tostring(wCtr), layer.type, 0)
              im.tooltip('A longitudinal layer which spans a lane/multiple adjacent lanes.')
              wCtr = wCtr + 1
              im.RadioButton2("Offset###" .. tostring(wCtr), layer.type, 1)
              im.tooltip('A longitudinal layer which has a fixed width, and is offset from one side of a lane.')
              wCtr = wCtr + 1
              im.RadioButton2("Patch###" .. tostring(wCtr), layer.type, 2)
              im.tooltip('A single-instance layer, at some chosen position along the road. Spans a lane/multiple lanes.')
              wCtr = wCtr + 1
              im.RadioButton2("Decal###" .. tostring(wCtr), layer.type, 3)
              im.tooltip('A single-instance layer, at some chosen position along the road, and indexes a larger tiled-material. Has a fixed size.')
              wCtr = wCtr + 1
              im.RadioButton2("Road-Span Mesh###" .. tostring(wCtr), layer.type, 4)
              im.tooltip('A road-spanning layer comprised of adjacent static mesh units.')
              wCtr = wCtr + 1
              im.RadioButton2("Single Mesh###" .. tostring(wCtr), layer.type, 5)
              im.tooltip('A single-instance static mesh, at some chosen position along the road.')
              wCtr = wCtr + 1
                  wCtr = wCtr + 1
                  im.tooltip('Set the texture length of the material.')
                  im.PopItemWidth()
                end
                im.tooltip('Select a new material for layer ' .. tostring(selLayerIdx))
                im.SameLine()
                im.Text(layer.mat or 'None')
                im.tooltip('The currently-selected material for layer ' .. tostring(selLayerIdx))
                im.NextColumn()
                  im.InputInt("Min Lane Index###" .. tostring(wCtr), layer.laneMin, 1)
                  im.tooltip('The index of the left-most lane, from which this layer will span.')
                  wCtr = wCtr + 1
                  im.InputInt("Max Lane Index###" .. tostring(wCtr), layer.laneMax, 1)
                  im.tooltip('The index of the right-most lane, to which this layer will span.')
                  wCtr = wCtr + 1
                  im.InputInt("Lane Index###" .. tostring(wCtr), layer.lane, 1)
                  im.tooltip('The index of the lane to which this layer is attached.')
                  wCtr = wCtr + 1
                wCtr = wCtr + 1
                im.tooltip('Set the layer position. For non-patch types: laterally from the attach lane. For patch/decal types: longitudinally along the length of the road.')
                layer.off = im.FloatPtr(max(limitMin, min(limitMax, layer.off[0])))
                  wCtr = wCtr + 1
                  im.tooltip('Set the width of layer ' .. tostring(selLayerIdx))
                end
                  wCtr = wCtr + 1
                  im.tooltip('Set the lateral offset (from the chosen lane and lane side).')
                  layer.pos = im.FloatPtr(max(-50.0, min(50.0, layer.pos[0])))
                  wCtr = wCtr + 1
                  im.tooltip('The number of rows in the selected (tiled) material.')
                  wCtr = wCtr + 1
                  im.tooltip('The number of columns in the selected (tiled) material.')
                  wCtr = wCtr + 1
                  im.tooltip('The frame (tile) to use from the selected material.')
                  wCtr = wCtr + 1
                  im.tooltip('Set the size of the square decal (length = width).')
                  layer.size = im.FloatPtr(max(0.0, min(50.0, layer.size[0])))
                  wCtr = wCtr + 1
                  im.tooltip('Attach to left side of lane (checked), or right (unchecked).')
                end
                  im.PopItemWidth()
                  im.tooltip('Set the pre-rotation around the Z-axis for this mesh, to better align it on the lane.')
                  wCtr = wCtr + 1
                  im.tooltip('Layer will span the entire longitudinal road length (checked), or be limited to a node-to-node interval (unchecked).')
                  im.SameLine()
                  wCtr = wCtr + 1
                  im.tooltip('Layer will leave extra space from the start/end of the road (useful for eg paint markings).')
                  im.NextColumn()
                    wCtr = wCtr + 1
                    im.tooltip('The start node index, for this layer.')
                    im.InputInt("Max Node Index###" .. tostring(wCtr), layer.nMax, 1)
                    wCtr = wCtr + 1
                    im.tooltip('The end node index, for this layer.')
                  end
                  wCtr = wCtr + 1
                  im.tooltip('Set the fade-in value of layer ' .. tostring(selLayerIdx))
                  im.InputFloat("Fade-Out [End]###" .. tostring(wCtr), layer.fadeE, 0.01, 0.0)
                  wCtr = wCtr + 1
                  im.tooltip('Set the fade-out value of layer ' .. tostring(selLayerIdx))
                end
                  wCtr = wCtr + 1
                  im.tooltip('Flip the direction of this layer (checked), or not (unchecked). Useful for edge blending and gutter layers, for example.')
                end
                end
                im.tooltip('Select a static mesh unit for this layer.')
                im.SameLine()
                end
                im.tooltip('The selected static mesh unit.')
                im.NextColumn()
                wCtr = wCtr + 1
                im.tooltip('Layer will span the entire longitudinal road length (checked), or be limited to a node-to-node interval (unchecked).')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Attach to left side of lane (checked), or right (unchecked).')
                im.NextColumn()
                  wCtr = wCtr + 1
                  im.tooltip('The start node index, for this layer.')
                  im.InputInt("Node Index [Max]###" .. tostring(wCtr), layer.nMax, 1)
                  wCtr = wCtr + 1
                  im.tooltip('The end node index, for this layer.')
                  im.PopItemWidth()
                wCtr = wCtr + 1
                im.tooltip('Sets whether to align the mesh Z-axis with the world Z-axis.')
                wCtr = wCtr + 1
                im.tooltip('Set the longitudinal spacing between each unit of the custom mesh lane.')
                local oldVal = layer.lane[0]
                im.InputInt("Lane Index###" .. tostring(wCtr), layer.lane, 1)
                im.tooltip('The index of the lane to which this mesh unit is attached.')
                wCtr = wCtr + 1
                layer.lane = im.IntPtr(max(lMin, min(lMax, layer.lane[0])))
                im.tooltip('Set the vertical offset of the custom mesh.')
                im.InputFloat("Lateral Offset###" .. tostring(wCtr), layer.latOffset, 0.1, 0.0)
                wCtr = wCtr + 1
                im.tooltip('Set the lateral offset of the custom mesh.')
                im.InputFloat("Amount Of Jitter###" .. tostring(wCtr), layer.jitter, 0.001, 0.0)
                wCtr = wCtr + 1
                im.tooltip('Set the amount of random jitter of the custom mesh.')
                im.PopStyleVar()
                im.PopItemWidth()
                im.tooltip('Set the pre-rotation around the Z-axis for this mesh, to better align it on the lane.')
                end
                im.tooltip('Select a static mesh unit.')
                im.SameLine()
                end
                im.tooltip('The selected static mesh unit.')
                im.NextColumn()
                im.InputInt("Lane Index###" .. tostring(wCtr), layer.lane, 1)
                im.tooltip('The index of the lane to which this mesh unit is attached.')
                wCtr = wCtr + 1
                wCtr = wCtr + 1
                im.tooltip('Attach to left side of lane (checked), or right (unchecked).')
                wCtr = wCtr + 1
                im.tooltip('Set the longitudinal position (along the road) for this mesh unit.')
                wCtr = wCtr + 1
                im.tooltip('Set the lateral offset of the mesh unit.')
                wCtr = wCtr + 1
                im.tooltip('Set the vertical offset of the mesh unit.')
                im.PopItemWidth()
                im.PopItemWidth()
                im.tooltip('Set the pre-rotation around the Z-axis for this mesh, to better align it on the lane.')
                  end
                  im.tooltip('The lane Id.')
                  wCtr = wCtr + 1
                  im.Text(sideFacingText)
                  im.tooltip('Which way the sidewalk faces (Left-Facing = curb on left, Right-Facing = curb on right).')
                  im.NextColumn()
              wCtr = wCtr + 1
              im.tooltip('Left side sidewalk (checked), or right side sidewalk (unchecked).')
              wCtr = wCtr + 1
              im.tooltip('The curb width.')
              wCtr = wCtr + 1
              im.tooltip('The lateral offset of the curb corner.')
              wCtr = wCtr + 1
              im.tooltip('The vertical offset of the curb corner.')
              im.PopStyleVar()
              im.NextColumn()
              im.tooltip("Set the starting 'V' position of the curb UV-mapping (each provides a different curb texture).")
            end
            im.tooltip('Sets the thickness of the tunnel walls.')
            road.thickness = im.FloatPtr(max(0.1, min(20.0, road.thickness[0])))
            end
            im.tooltip('Sets the tunnel radius offset.')
            road.radOffset = im.FloatPtr(max(-10.0, min(10.0, road.radOffset[0])))
            end
            im.tooltip('Sets the vertical offset of the road inside the tunnel.')
            road.zOffsetFromRoad = im.FloatPtr(max(-30.0, min(30.0, road.zOffsetFromRoad[0])))
            end
            im.tooltip('Sets the amount of extension at the start of the tunnel.')
            road.protrudeS = im.FloatPtr(max(0.0, min(30.0, road.protrudeS[0])))
            end
            im.tooltip('Sets the amount of extension at the end of the tunnel.')
            road.protrudeE = im.FloatPtr(max(0.0, min(30.0, road.protrudeE[0])))
            im.PopItemWidth()
            im.tooltip('Sets the general tunnel start position, on the road.')
            im.PopItemWidth()
            im.tooltip('Sets the general tunnel end position, on the road.')
            im.PopItemWidth()
            im.tooltip('Tunnel mesh granularity.')
          end
          im.tooltip('Urban class (for street-based roads, eg with sidewalks, lamp posts, etc).')
          im.SameLine()
          end
          im.tooltip('Highway class (for highways and intersections, eg with hard shoulders, crash barriers, etc).')
          im.SameLine()
          im.NextColumn()
          im.tooltip('Dirt Road class (for tracks going across dirt, sand, etc).')
            end
            im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
            if im.SliderInt("###3161",profile.numPatches, 0, 50, "Repair Patches = %d") then
            end
            im.tooltip('The number of damage patches to include on the road.')
            end
            im.tooltip('The number of pothole patches to include on the road.')
            im.PopItemWidth()
            end
            im.tooltip('Set the random seed for the road condition (change to get different wear patterns).')
            im.PopStyleVar()
            end
            im.tooltip('Set the tire tread marks fade-in amount (from road start), in meters.')
            if im.InputFloat("Fade Out [End]###4189", profile.fadeE, 0.01, 0.0) then
            end
            im.tooltip('Set the tire tread marks fade-out amount (from road end), in meters.')
            end
            im.tooltip('Select a new material for the dirt track.')
            im.SameLine()
            im.Text(profile.dirtMat)
            im.tooltip('The currently-selected material for the dirt tracks.')
            im.NextColumn()
          end
          im.tooltip('Toggles the road surface mesh.')
          im.SameLine()
          end
          im.tooltip('Toggles the road outline mesh (shows render granularity/quadrilaterals).')
          im.SameLine()
          end
          im.tooltip('Toggles the road reference line (center line of road).')
          im.SameLine()
          end
          im.tooltip('Toggles the lane info.')
          im.NextColumn()
          end
          im.tooltip('Toggles the node spheres.')
          im.SameLine()
          end
          im.tooltip('Toggles the node numbering.')
          im.SameLine()
          im.Checkbox('isOverObject Flag', road.isOverObject)
          im.tooltip("All decals created by this road will have the 'isOverObjects' flag set true (checked), or set false (unchecked).")
          im.TreePop()
          end
          im.tooltip('Export the road masks to a file.')
          im.TreePop()
          end
          im.tooltip('The Id of this junction.')
          wCtr = wCtr + 1
          im.PopItemWidth()
          im.tooltip('Edit the name of this junction.')
          wCtr = wCtr + 1
          end
          im.tooltip('Remove this junction from the session (removes all roads).')
          im.SameLine()
          end
          im.tooltip('Finalize this junction (will export the junction roads to the Roads List, and will become connectable. However, the junction will no longer be editable in the junction designer).')
          im.SameLine()
          end
          im.tooltip('Save this junction to disk.')
          im.SameLine()
          end
          im.tooltip('Go to this junction.')
          im.NextColumn()
        end
        im.tooltip('Add a 2-way simple crossing junction.')
        im.SameLine()
        end
        im.tooltip('Add a 4-way crossroads style junction.')
        im.SameLine()
        end
        im.tooltip('Add a 3-way T-style junction.')
        im.SameLine()
        end
        im.tooltip('Add a 3-way Y-style junction (with angular control).')
        im.SameLine()
        end
        im.tooltip('Add a 4-way roundabout junction.')
        im.SameLine()
        end
        im.tooltip('Add a sidewalk transition junction (joins an urban road with sidewalk to an urban/rural road without sidewalk).')
        im.SameLine()
        end
        im.tooltip('Add an urban merge junction (eg 2 lanes -> 1 lane, 3 lanes -> 2 lanes).')
        im.SameLine()
        end
        im.tooltip('Add a urban separator junction (splits a two-way road into two one-way sections, to make linking separable).')
        im.NextColumn()
        end
        im.tooltip('Add a highway merge junction (eg 2 lanes -> 1 lane, 3 lanes -> 2 lanes).')
        im.SameLine()
        end
        im.tooltip('Add a highway <-> urban transition junction (tapers the central reservation down to a centerline).')
        im.SameLine()
        end
        im.tooltip('Add a highway separator junction (splits a two-way highway into two one-way sections, to make linking separable).')
        im.SameLine()
        end
        im.tooltip('Add a shoulder fade junction (tapers out the hard shoulder lane, to connect Highway to Urban types).')
        im.SameLine()
        end
        im.tooltip('Add a highway slip junction.')
        im.SameLine()
        end
        im.tooltip('Create an auto-junction by grouping road ends with a polygon. Toggles mode on/off.')
        im.SameLine()
        end
        im.tooltip('Load a previously-saved junction from disk.')
        im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Lower the sidewalks at pedestrian crossings.')
          else
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Set the length of the crossing road.')
          wCtr = wCtr + 1
          im.tooltip('Include traffic lights.')
            wCtr = wCtr + 1
            im.tooltip('Set the lateral offset of the traffic lights.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 1.')
            wCtr = wCtr + 1
            im.tooltip('Set the width of the pedestrian crossings.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the Y direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Use a one-way road for the Y direction roads.')
            wCtr = wCtr + 1
            im.tooltip('The Y1-Exit will be outwards-pointing (checked), or inwards-pointing (unchecked).')
            im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('The Y2-Exit will be outwards-pointing (checked), or inwards-pointing (unchecked).')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Lower the sidewalks at pedestrian crossings.')
          else
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the corner radius of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic lights.')
            wCtr = wCtr + 1
            im.tooltip('Set the lateral offset of the traffic lights.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 1.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 2.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 3.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 4.')
          im.NextColumn()
            wCtr = wCtr + 1
            im.tooltip('Set the width of the pedestrian crossings.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include arrow decals on all roads approaching the junction.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Include a second row of arrows some distance behind the first row (if space permits).')
          else
          wCtr = wCtr + 1
          im.tooltip('The size of the arrow decals.')
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the front arrows shall appear.')
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the back arrows shall appear.')
          im.Columns(3, "jctArrowsMatSelA", false)
          end
          im.tooltip('Select a new material for the arrows.')
          im.SameLine()
          im.Text(selJct.arrowMat)
          im.tooltip('The currently-selected material for the arrows.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the Y direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Use a one-way road for the Y direction roads.')
            wCtr = wCtr + 1
            im.tooltip('The Y-Exit will be outwards-pointing (checked), or inwards-pointing (unchecked).')
          end
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Lower the sidewalks at pedestrian crossings.')
          else
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the corner radius of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic lights.')
            wCtr = wCtr + 1
            im.tooltip('Set the lateral offset of the traffic lights.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 1.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 2.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 3.')
          im.NextColumn()
            wCtr = wCtr + 1
            im.tooltip('Set the width of the pedestrian crossings.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include arrow decals on all roads approaching the junction.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Include a second row of arrows some distance behind the first row (if space permits).')
          else
          wCtr = wCtr + 1
          im.tooltip('The size of the arrow decals.')
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the front arrows shall appear.')
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the back arrows shall appear.')
          im.Columns(3, "jctArrowsMatSelA", false)
          end
          im.tooltip('Select a new material for the arrows.')
          im.SameLine()
          im.Text(selJct.arrowMat)
          im.tooltip('The currently-selected material for the arrows.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic lights.')
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 1.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 2.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 3.')
          im.NextColumn()
            wCtr = wCtr + 1
            im.tooltip('Set the width of the pedestrian crossings.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include arrow decals on all roads approaching the junction.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Include a second row of arrows some distance behind the first row (if space permits).')
          else
          wCtr = wCtr + 1
          im.tooltip('The size of the arrow decals.')
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the front arrows shall appear.')
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the back arrows shall appear.')
          im.Columns(3, "jctArrowsMatSelA", false)
          end
          im.tooltip('Select a new material for the arrows.')
          im.SameLine()
          im.Text(selJct.arrowMat)
          im.tooltip('The currently-selected material for the arrows.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the extra radius amount (base radius determined by exit road size).')
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Lower the sidewalks at pedestrian crossings.')
          else
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the corner radius of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic lights.')
            wCtr = wCtr + 1
            im.tooltip('Set the lateral offset of the traffic lights.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 1.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 2.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 3.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include a pedestrian cross on road 4.')
          im.NextColumn()
            wCtr = wCtr + 1
            im.tooltip('Set the width of the pedestrian crossings.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include arrow decals on all roads approaching the junction.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip('Include a second row of arrows some distance behind the first row (if space permits).')
          else
          wCtr = wCtr + 1
          im.tooltip('The size of the arrow decals.')
          if im.InputFloat("Front Arrow Distance###" .. tostring(wCtr), selJct.arrowFrontDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the front arrows shall appear.')
          if im.InputFloat("Rear Arrow Distance###" .. tostring(wCtr), selJct.arrowBackDistFromEnd, 0.01, 0.0) then
          wCtr = wCtr + 1
          im.tooltip('The distance from the junction, at which the back arrows shall appear.')
          im.Columns(3, "jctArrowsMatSelA", false)
          end
          im.tooltip('Select a new material for the arrows.')
          im.SameLine()
          im.Text(selJct.arrowMat)
          im.tooltip('The currently-selected material for the arrows.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Use a one-way road for the Y direction roads.')
          im.SameLine()
            wCtr = wCtr + 1
            im.tooltip("Set the direction of this one-way junction. 'From' sidewalk (checked) or 'To' sidewalk (unchecked).")
          else
          wCtr = wCtr + 1
          im.tooltip('Set the width of the sidewalks.')
          wCtr = wCtr + 1
          im.tooltip('Set the height of the sidewalks.')
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of trunk lanes (on the thin end).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the taper section (middle).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the end roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the trunk and exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the inner width of the taper (one third along).')
          wCtr = wCtr + 1
          im.tooltip('Set the outer width of the taper (two thirds along).')
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
            end
            im.tooltip('Select a new material for the edge blending.')
            im.SameLine()
            im.Text(selJct.edgeBlendMat)
            im.tooltip('The currently-selected material for the junction edge blending')
            im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          wCtr = wCtr + 1
          im.tooltip('Set the number of trunk lanes (on the thin end).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the taper section (middle).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the end roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the trunk and exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the hard shoulder lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the central reservation.')
          wCtr = wCtr + 1
          im.tooltip('Set the inner width of the taper (one third along).')
          wCtr = wCtr + 1
          im.tooltip('Set the outer width of the taper (two thirds along).')
          wCtr = wCtr + 1
          im.tooltip('Include inner crash barriers.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include outer crash barriers.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of trunk lanes (on the thin end).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the taper section (middle).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the end roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the trunk and exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the hard shoulder lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the central reservation.')
          wCtr = wCtr + 1
          im.tooltip('Set the inner width of the taper (one third along).')
          wCtr = wCtr + 1
          im.tooltip('Set the outer width of the taper (two thirds along).')
          wCtr = wCtr + 1
          im.tooltip('Include sidewalks.')
          if selJct.isSidewalk[0] then
            wCtr = wCtr + 1
            im.tooltip('Set the width of the sidewalks.')
            wCtr = wCtr + 1
            im.tooltip('Set the height of the sidewalks.')
          end
          wCtr = wCtr + 1
          im.tooltip('Include inner crash barriers.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include outer crash barriers.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of lanes for roads heading in the X direction.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Include inner crash barriers.')
          im.SameLine()
          wCtr = wCtr + 1
          im.tooltip('Include outer crash barriers.')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Include traffic signs (poles).')
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of trunk lanes (on the thin end).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the end roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the trunk and exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the hard shoulder lanes.')
          wCtr = wCtr + 1
          im.tooltip("Set the direction of this one-way junction. 'To' highway (checked) or 'From' highway (unchecked).")
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          wCtr = wCtr + 1
          im.tooltip('Set the number of trunk lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the taper section (section 2).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the split section (section 3).')
          wCtr = wCtr + 1
          im.tooltip('Set the length of the end roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the lane width of the trunk and exit roads.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the hard shoulder lanes.')
          wCtr = wCtr + 1
          im.tooltip('Set the width of the central reservation.')
          wCtr = wCtr + 1
          im.tooltip('Set the inner width of the split section.')
          wCtr = wCtr + 1
          im.tooltip('Set the outer width of the split section.')
          wCtr = wCtr + 1
          im.tooltip('Include tread overlays (checked), or not (unchecked).')
          if selJct.isCrossings[0] then
            end
            im.tooltip('Set the number of overlays to be included.')
            if im.InputInt("Random Seed Value###4433", selJct.seed, 1) then
            end
            im.tooltip('Set the random seed for the overlays.')
          end
          end
          im.tooltip('The road condition [0 = clean, 1 = damaged/worn].')
          end
          im.tooltip('The number of damage patches to include on the road.')
          end
          im.tooltip('The number of pothole patches to include on the road.')
          im.PopItemWidth()
          end
          im.tooltip('Set the random seed for the junction condition (change to get different wear patterns).')
          im.PopStyleVar()
          end
          im.tooltip('Select a new material for the edge blending.')
          im.SameLine()
          im.Text(selJct.edgeBlendMat)
          im.tooltip('The currently-selected material for the junction edge blending')
          im.NextColumn()
          end
          im.tooltip('The Id of this group.')
          wCtr = wCtr + 1
          im.PopItemWidth()
          im.tooltip('Edit the name of this group.')
          wCtr = wCtr + 1
          end
          im.tooltip('Soft delete - removes this group from the session, but NOT the roads inside the group.')
          im.SameLine()
          end
          im.tooltip('Hard delete - removes this group from the session, AND the roads inside it.')
          im.SameLine()
          end
          im.tooltip('Create a new template profile from the current profile of this road (will appear in templates list, and can be saved from there).')
          im.SameLine()
          end
          im.tooltip('Go to this group.')
          im.NextColumn()
        end
        im.tooltip('Open/close the group templates selection window.')
      end
        end
        im.tooltip('Create a new group template, by drawing a polygon around roads in the session.')
      end
          end
          im.tooltip('Terraform the terrain to the selected group.')
          im.SameLine()
          end
          im.tooltip('Show the proposed terraforming range on the map, for the selected group.')
          im.SameLine()
          im.SliderInt("###99949", terraParams.domainOfInfluence, 1, 500, "Domain Of Influence (m) %d")
          im.tooltip('Set the domain of influence of the terraforming, in meters.')
          im.SliderFloat("###99948", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
          im.SliderFloat("###99948", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
          im.tooltip('Set the terraforming margin (around road), in meters.')
          im.PopStyleVar()
      im.Checkbox('Load Terrains With Sessions', isLoadTerrain)
      im.tooltip('On loading a session, the saved terrain (.png) file will also be loaded to the map (checked), otherwise only the road network data will be loaded (unchecked).')
      im.EndTabItem()
                wCtr = wCtr + 1
                im.tooltip('Sets the width of this lane.')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Sets the relative height of the left edge of this lane (height above base).')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Sets the relative height of the right edge of this lane (height above base).')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Sets the width of this lane.')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Sets the relative height of the left edge of this lane (height above base).')
                im.SameLine()
                wCtr = wCtr + 1
                im.tooltip('Sets the relative height of the right edge of this lane (height above base).')
                im.SameLine()
            end
            im.tooltip('The elevation at the node, in meters.')
            im.SameLine()
            im.InputFloat("Rotation", node.rot, 0.25, 0.0)
            im.tooltip('The lateral rotation at this node, in degrees.')
            if oldRot ~= node.rot[0] then
            im.SliderFloat("Arc Rad", node.incircleRad, 1.0, 2.0, "Radius = %.3f")
            im.tooltip('The radius of the arc at this node.')
            im.PopStyleVar()
            end
            im.tooltip('Change the name of this template profile.')
            im.PopItemWidth()
            end
            im.tooltip('Select/apply this profile to the selected road.')
            im.SameLine()
            end
            im.tooltip('Edit this template profile (opens edit window), before applying it to a road.')
            im.SameLine()
            end
            im.tooltip('Save this profile template to disk.')
            im.SameLine()
              end
              im.tooltip('Delete this profile template.')
            else
      end
      im.tooltip('Load a profile from disk.')
      im.SameLine()
      end
      im.tooltip('Reset all templates (also removes any loaded templates).')
      im.NextColumn()
              end
              im.tooltip('The lane index (-ve for left lanes, +ve for right lanes).')
              im.SameLine()
                end
                im.tooltip('Remove this lane from profile.')
              else
              end
              im.tooltip('Add a new lane above this lane.')
              im.SameLine()
              end
              im.tooltip('Add a new lane below this lane.')
              im.SameLine()
              end
              im.tooltip('Cycle back through available lane types.')
              im.SameLine()
              im.Text(lane.type)
              im.tooltip('The lane type.')
              im.SameLine()
              end
              im.tooltip('Cycle forward through available lane types.')
              im.SameLine()
              wCtr = wCtr + 1
              im.tooltip('The lane width.')
              im.PopItemWidth()
              wCtr = wCtr + 1
              im.tooltip('The relative height of the lane left edge.')
              im.PopItemWidth()
              wCtr = wCtr + 1
              im.tooltip('The relative height of the lane right edge.')
              im.PopItemWidth()
              end
              im.tooltip('The lane index.')
              im.SameLine()
                end
                im.tooltip('Remove this lane from profile.')
              else
              end
              im.tooltip('Add a new lane above this lane.')
              im.SameLine()
              end
              im.tooltip('Add a new lane below this lane.')
              im.SameLine()
              end
              im.tooltip('Cycle back through available lane types.')
              im.SameLine()
              im.Text(lane.type)
              im.tooltip('The lane type.')
              im.SameLine()
              end
              im.tooltip('Cycle forward through available lane types.')
              im.SameLine()
              wCtr = wCtr + 1
              im.tooltip('The lane width.')
              im.PopItemWidth()
              wCtr = wCtr + 1
              im.tooltip('The relative height of the lane left edge.')
              im.PopItemWidth()
              wCtr = wCtr + 1
              im.tooltip('The relative height of the right outer edge.')
              im.PopItemWidth()
          end
          im.tooltip('Select this static mesh.')
          im.NextColumn()
      end
      im.tooltip('Use the selected mesh and return to the main view.')
      im.PopItemWidth()
          end
          im.tooltip('Place this group template in the session.')
          im.SameLine()
          end
          im.tooltip('Save this group template to disk.')
          im.Separator()
      end
      im.tooltip('Load a group template from disk.')
      im.SameLine()
        end
        im.tooltip('Conform the group template to the terrain, upon placing.')
      end
      end
      im.tooltip('Apply vertical offset to imported road network, to sit on existing terrain.')
      end
      im.tooltip('Apply a custom vertical offset to imported road network.')
        im.InputFloat("Offset", importCustomOffset, 0.1, 0.0)
        im.tooltip('Sets the custom vertical offset amount.')
        im.PopItemWidth()
        im.Checkbox("Terraform Terrain To Import", importTT2I)
        im.tooltip('Terraform the terrain to fit the imported road network.')
      end
        im.SliderInt("###49", terraParams.domainOfInfluence, 1, 500, "Domain Of Influence (m) %d")
        im.tooltip('Set the domain of influence of the terraforming, in meters.')
        im.SliderFloat("###48", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
        im.SliderFloat("###48", terraParams.terraMargin, 0.0, 20.0, "Margin (m) = %.3f")
        im.tooltip('Set the terraforming margin (around road), in meters.')
        im.PopStyleVar()
      end
      im.tooltip('Import from file.')
    else
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/brushStroke.lua
    im.ColorButton(string.format("##%s_%s_%s", layer.uid, guiId, "colorpalettemapidbutton"), editor.getTempImVec4_TableTable(col))
    im.tooltip("Vehicle color palette color")
  end
  end
  im.tooltip("Flip decal horizontally")
  im.PopStyleColor()
  end
  im.tooltip("Flip decal vertically")
  im.PopStyleColor()
  end
  im.tooltip("alpha mask rotation in degrees")
  im.PopItemWidth()
      end
      im.tooltip("Remove entry")
      im.SameLine()
      end
      im.tooltip("Insert entry")
      if k == count then im.EndDisabled() end
      end
      im.tooltip("Move data point")
      if im.IsItemHovered() then
      if #property.description > 0 then
        im.tooltip(property.description)
      end
      end
      im.tooltip("- Click to highlight property -")
    end
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
                                        im.SameLine()
                                        im.tooltip((injoints and 'Skip' or 'Find')..' joint parts')
--                                        im.tooltip('CW:'..tostring(im.GetCursorPosX())..':'..tostring(im.GetColumnWidth()))
                                        im.tooltip((injoints and 'Skip' or 'Find')..' joint parts')
--                                        im.tooltip('CW:'..tostring(im.GetCursorPosX())..':'..tostring(im.GetColumnWidth()))
                                    end
                            im.SameLine()
                            im.tooltip('Show'..' links'..'>'..tostring(env.ui['geo_up'])..'<')
]]
                im.Unindent(12)
                im.tooltip(inmesh and 'To JBeam parts' or 'To mesh parts')
            end
            UI.buttonImg('dae_out', 'floppyDisk', {34,34}, color)
            im.tooltip('To DAE') --?? LU:'..tostring(env.ui['lod_up']))
            if color ~= UI.cbutOff then
                im.tooltip((indae and 'To objects' or 'Explore mesh'))
--                im.tooltip('Explore '..(indae and 'files' or 'mesh'))
                im.tooltip((indae and 'To objects' or 'Explore mesh'))
--                im.tooltip('Explore '..(indae and 'files' or 'mesh'))
--                im.tooltip('File explorer'..tostring(indae)..':'..tostring(color))
--                im.tooltip('Explore '..(indae and 'files' or 'mesh'))
--                im.tooltip('File explorer'..tostring(indae)..':'..tostring(color))
            end
                            UI.buttonTxt('file_up', d.s)
                            im.tooltip(d.s)
                            im.NextColumn()
                                im.Unindent(-4)
                                im.tooltip('Favorites filter')
                            end
                            UI.buttonTxt('dir_up', fsnode.astep[j])
        --                    im.tooltip('Favo')
        --                    im.Text(fsnode.path[i])
        --                        im.Unindent(-40)
                                im.tooltip('To favorites')
                            end
                            im.Unindent(-4)
                            im.tooltip(color == UI.cbutOff and 'Mark as favorite' or 'Unmark')
                            im.NextColumn()
                    color, nil, vec3(0.8,0.8))
                im.tooltip('To '..(env.ui['model_on'] and 'files' or 'models'))
                if im.IsItemHovered() then
@/lua/ge/extensions/editor/iconOverview.lua
        end
        imgui.tooltip(v)
        i = i + 1
@/lua/ge/extensions/editor/multiSpawnManager.lua
  end
  im.tooltip("User defined vehicle selections.")
  im.SameLine()
  end
  im.tooltip("Auto generated vehicle selections.")
  im.Dummy(dummy)
      end
      im.tooltip("Remove Tag")
      im.SameLine()
    im.PopItemWidth()
    im.tooltip("Latest model year to include when generating the vehicle group.")
    im.PopItemWidth()
    im.tooltip("Country name; allows domestic vehicles to be selected more often.")
    im.PopItemWidth()
    im.tooltip("Minimum population required for model / config to be usable (useful for filtering out super rare configs).")
    im.PopItemWidth()
    im.tooltip("Exponent to apply to population; lower values mean that the model will be less biased to be selected by its base population value.")
    im.PopItemWidth()
    im.tooltip("Exponent to apply to population; lower values mean that the config will be less biased to be selected by its base population value.")
    im.PopItemWidth()
    im.tooltip("Population multiplier after vehicle insertion; use low values to prevent repeat models / configs.")
@/lua/ge/extensions/flowgraph/nodes/ui/multiDescription.lua
    end
    ui_flowgraph_editor.tooltip(txt)
  end
@/lua/ge/extensions/editor/flowgraph/execution.lua
  editor.uiIconImage(mgr.runningState ~= "running" and editor.icons.pause_circle_outline or editor.icons.play_circle_filled, im.ImVec2(20, 20))
  ui_flowgraph_editor.tooltip(mgr.runningState == "running" and "Project Running" or "Project Stopped")
  im.SameLine()
    editor.uiIconImage(editor.icons.visibility_off, im.ImVec2(20, 20))
    ui_flowgraph_editor.tooltip("This project is invisible. You can see it because you have Dev Mode enabled.")
    im.SameLine()
    editor.uiIconImage(editor.icons.goat, im.ImVec2(20, 20))
    ui_flowgraph_editor.tooltip("This project is transient. It cannot be saved.")
    im.SameLine()
    editor.uiIconImage(editor.icons.assignment, im.ImVec2(20, 20), color)
    -- ui_flowgraph_editor.tooltip(tooltipText)
    im.tooltip(tooltipText)
    -- ui_flowgraph_editor.tooltip(tooltipText)
    im.tooltip(tooltipText)
    im.SameLine()
    end
    --ui_flowgraph_editor.tooltip("Start Project Execution")
    im.SameLine()
    end
    ui_flowgraph_editor.tooltip("Stop Project Execution")
  else
    end
    ui_flowgraph_editor.tooltip("Start Project Execution")
    im.SameLine()
    end
    --ui_flowgraph_editor.tooltip("Stop Project Execution")
  end
  --end
  --ui_flowgraph_editor.tooltip("Reset Manager")
  im.SameLine()
    end
    ui_flowgraph_editor.tooltip("Select Project")
  end
  end
  ui_flowgraph_editor.tooltip("Close Project")
  im.NextColumn()
  end
  ui_flowgraph_editor.tooltip("Start All Projects\n(Will apply mission variables if mission selected in Mission Editor)")
  im.SameLine()
  end
  ui_flowgraph_editor.tooltip("Stop All Projects")
  --im.SameLine()
  --end
  --ui_flowgraph_editor.tooltip("Reset All Managers")
  --im.NextColumn()
@/lua/ge/extensions/editor/audioRibbonEditor.lua
    end
    im.tooltip('Add a new ribbon (allows user to draw left/right edge node pairs with mouse).')
    im.SameLine()
      end
      im.tooltip('Remove all ribbons from the list.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the ribbon (to move nodes separately)' or 'Lock the shape of the ribbon (to move nodes rigidly)'))
    else
      end
      im.tooltip('Switch the translational gizmo ' .. (isGizmoActive and 'off' or 'on') .. ' (can also press ALT to toggle).')
    else
          ribbon.name = ffi.string(nameBinding)
          im.tooltip('Edit the name of this ribbon.')
          if im.IsItemActive() then
          im.TextColored(cols.dullWhite, ribbon.name)
          im.tooltip('This ribbon is disabled. To edit or remove it, first enable it.')
        end
          end
          im.tooltip('Remove this ribbon from the list.')
        else
        end
        im.tooltip(ribbon.isEnabled and 'Disable this ribbon (will not emit audio).' or 'Enable this ribbon.')
        im.NextColumn()
      end
      im.tooltip('Go to this ribbon.')
    else
    end
    im.tooltip('Conform the ribbon to the surface below.')
    im.SameLine()
    end
    im.tooltip(selRibbon.isAmbient and 'Use 4 emitters on a (+) grid.' or 'Use single emitter (for ambient sources).')
    im.SameLine()
    end
    im.tooltip(selRibbon.isUpRibbon and 'Make ribbon point upwards.' or 'Make ribbon point downwards.')
    im.SameLine()
      end
      im.tooltip(selRibbon.isTopActive and 'Use the bottom face of the ribbon as the active surface.' or 'Use the top face of the ribbon as the active surface.')
    else
      end
      im.tooltip(selRibbon.isQuadAndVolume and 'Use a 2D surface (top or bottom).' or 'Use a 3D volume (the ribbon volume).')
    else
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the speed of the ribbon, in meters per second.')
      im.PopItemWidth()
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the depth of the ribbon, in meters.')
      im.PopItemWidth()
      if isAmbient then
        im.tooltip('Toggle mute/unmute the ambient emitter for this ribbon.')
      else
      else
        im.tooltip('Toggle mute/unmute the front emitter for this ribbon.')
      end
        end
        im.tooltip('Toggle mute/unmute the rear emitter for this ribbon.')
      else
        end
        im.tooltip('Toggle mute/unmute the left emitter for this ribbon.')
      else
        end
        im.tooltip('Toggle mute/unmute the right emitter for this ribbon.')
      else
        end
        im.tooltip('Edit the event path for the front emitter of this ribbon.')
      else
        end
        im.tooltip('Edit the event path for the ambient emitter of this ribbon.')
      end
        end
        im.tooltip('Edit the event path for the rear emitter of this ribbon.')
      else
        end
        im.tooltip('Edit the event path for the left emitter of this ribbon.')
      else
        end
        im.tooltip('Edit the event path for the right emitter of this ribbon.')
      else
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua
  end
  im.tooltip("Copies the custom fields of this object to use for other objects.")
  im.SameLine()
  end
  im.tooltip("Pastes the stored custom fields into this object.")
end
@/lua/ge/extensions/editor/rendererComponents.lua
    end
    im.tooltip("Open file dialog")
    im.SameLine()
            if field.description then
              im.tooltip(field.description)
            end
          if field.description then
            im.tooltip(field.description)
          end
@/lua/ge/extensions/editor/scriptAIManager.lua
    end
    im.tooltip('Stop all')
    end
    im.tooltip('Play all')
        end
        im.tooltip('Record')
        if recordings[vehId] then
          end
          im.tooltip('Play')
        end
        end
        im.tooltip('Stop Recording')
        im.SameLine()
        end
        im.tooltip('Restart Replay')
        im.SameLine()
        end
        im.tooltip('Stop Playing')
      end
        end
        im.tooltip('Save Recording')
      end
      end
      im.tooltip('Load Recording')
        im.Checkbox('Loop##loop'..vehId, loopRecordingBoolPtr[vehId])
        im.tooltip('Restart when recording reaches the end')
        im.SameLine()
        im.DragFloat('Start Offset', timeOffsetFloatPtr[vehId], 0.01)
        im.tooltip('Cuts of X seconds from the start. You need to restart the playback after changing this.')
        im.PushItemWidth(60)
        im.DragFloat('Start Delay', startDelayFloatPtr[vehId], 0.01)
        im.tooltip('Delays the start for X seconds. You need to restart the playback after changing this.')
    im.Checkbox("Display IDs", debugDisplay)
    im.tooltip('Display ID above the vehicle')
    im.SameLine()
    im.Checkbox("Display Path", debugPath)
    im.tooltip('Visualize recorded path. Could be performance heavy!')
  end
@/lua/ge/extensions/flowgraph/basenode.lua
    im.Text(string.format(" (+%d)",hiddenCount))
    --ui_flowgraph_editor.tooltip(hiddenCount .. " hidden pins")
    im.EndDisabled()
    im.Text(txt)
    --ui_flowgraph_editor.tooltip(hiddenCount .. " hidden pins")
    im.EndDisabled()
@/lua/ge/extensions/editor/rallyEditor/drivelineTab.lua
          local drivelineFile = rallyUtil.drivelineFile(missionDir)
          im.tooltip(drivelineFile .. "\n\nStart fresh from your raw recording. Best for first-time setup.")
        end
      im.EndDisabled()
      im.tooltip("No recording found. Drive the stage in Recce mode first.")
    end
        if hasFinal then
          im.tooltip(saveFile .. "\n\nContinue editing your previously saved driveline.")
        else
        else
          im.tooltip(saveFile .. "\n\nCreate a new driveline from scratch by placing nodes.")
        end
        local raceFile = missionDir..'/race.race.json'
        im.tooltip(raceFile .. "\n\nCreate a driveline from the race's AI path.")
      end
    end
    im.tooltip("Go back to source selection")
      end
      im.tooltip("Display the raw recorded driveline points")
    im.TextColored(im.ImVec4(0, 1, 1, 1), "(help)")
    im.tooltip("- Click nodes to select\n- Drag to move nodes\n- Click curve: Insert node\n- Click free space: Add to nearest end\n- DELETE: Remove node")
    end
    im.tooltip("Toggle between raw points and editable spline curve")
      end
      im.tooltip("Simplification tolerance. Lower = more nodes, higher = fewer nodes.")
      im.PopItemWidth()
      end
      im.tooltip("Reduce the number of spline nodes using RDP simplification (tolerance: " .. simplifyRdpTol .. "m)")
    end
      end
      im.tooltip("Display the final driveline points in the 3D view")
      end
      im.tooltip("Maximum speed limit for this driveline section")
      -- im.PopItemWidth()
      end
      im.tooltip("Calculate distance between start and finish positions")
          local saveFile = rallyUtil.finalDrivelineFile(missionDir)
          im.tooltip(saveFile)
        end
        end
        im.tooltip("Generate a 30-meter buffer zone around the driveline for spatial queries")
      else
        end
        im.tooltip("Clear the buffer zone")
      end
@/lua/ge/extensions/flowgraph/nodes/util/customLua.lua
  end
  ui_flowgraph_editor.tooltip(customNodes[self.name] and "OVERWRITE existing node in library" or "Save node to library")
      editor.uiIconImage(editor.icons.error, im.ImVec2(20, 20), im.ImVec4(1,0,0,1))
      ui_flowgraph_editor.tooltip(self.status[code])
    else
      editor.uiIconImage(editor.icons.check, im.ImVec2(20, 20), im.ImVec4(0,1,0,1))
      ui_flowgraph_editor.tooltip("All good!")
    end
    im.Text(code)
    ui_flowgraph_editor.tooltip(codeDescription[code])
    local buff = im.ArrayChar(bufLen, self.code[code] or "")
@/lua/ge/extensions/editor/raceEditor/startPositions.lua
  end
  im.tooltip("Shift-Drag in the world to create a new starting position.")
  im.EndChild()
@/lua/ge/extensions/editor/sidewalkSpline.lua
    end
    im.tooltip('Add a new sidewalk spline.')
    im.SameLine()
    end
    im.tooltip(isDrawPolygon and 'Click to stop drawing a selection polygon.' or 'Click to draw a selection polygon, to convert scene objects to a Sidewalk Spline.')
    im.SameLine()
      end
      im.tooltip('Remove all (enabled and not linked) sidewalk splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the sidewalk spline to move nodes separately' or 'Lock the shape of the sidewalk spline to move nodes rigidly'))
    else
      end
      im.tooltip('Save the sidewalk spline template to disk.')
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Sidewalk Splines.')
    else
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This sidewalk spline is linked to a Master Spline. To edit or remove it, first unlink it from within the Master Spline Editor.')
          elseif not spline.isEnabled then
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This sidewalk spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the sidewalk spline name.')
            if im.IsItemActive() then
            end
            im.tooltip('Remove this sidewalk spline from the session.')
          else
            end
            im.tooltip((spline.isEnabled and 'Disable' or 'Enable') .. ' this sidewalk spline.')
          else
        end
        im.tooltip('Go to this sidewalk spline (move camera).')
      else
        end
        im.tooltip('Splits the selected sidewalk spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected sidewalk spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected sidewalk spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Saves the template of the selected sidewalk spline to disk.')
      else
        end
        im.tooltip('Sets the selected sidewalk spline to a template loaded from disk.')
      else
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the vertical offset of the sidewalk pieces.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random rotation jitter applied to pieces.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set how much to prioritize piece orientation vs distance. Higher values prefer better alignment over exact positioning.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the random seed for piece placement and variation selection.')
      if im.IsItemActivated() then
          end
          im.tooltip('Select the Sidewalk Kit folder.')
          im.SameLine()
          end
          im.tooltip('The currently-selected Sidewalk Kit folder.')
          im.NextColumn()
              end
              im.tooltip(isEnabled and 'Do not include this component in the sidewalk.' or 'Include this component in the sidewalk.')
              im.SameLine()
              im.TextColored(cols.purpleB, baseMeshName)
              im.tooltip(piece.baseMesh and piece.baseMesh.meshPath or "Unknown mesh path")
              im.SameLine()
              im.TextColored(cols.redB, "[base]")
              im.tooltip("The base mesh of this component.")
              im.SameLine()
                  end
                  im.tooltip(varEnabled and 'Do not include this variation in the sidewalk.' or 'Include this variation in the sidewalk.')
                  im.SameLine()
                  im.TextColored(cols.dullWhite, " * " .. varMeshName)
                  im.tooltip(variation.meshPath or "Unknown mesh path")
                  im.SameLine()
                  im.TextColored(cols.dullWhite, "var" .. tostring(j))
                  im.tooltip("This is variation " .. tostring(j) .. " of the base component.")
                  im.NextColumn()
                end
                im.tooltip('Use round robin pattern for this component set.')
                im.SameLine()
                end
                im.tooltip('Use random pattern for this component set.')
                im.NextColumn()
                      end
                      im.tooltip("Reset to default.")
                    else
                    end
                    im.tooltip("Set the weight for the base component.")
                    if im.IsItemActivated() then
                          end
                          im.tooltip("Reset to default.")
                        else
                        end
                        im.tooltip("Set the weight for variation " .. tostring(j) .. ".")
                        if im.IsItemActivated() then
            end
            im.tooltip("Reset to default")
          else
          end
          im.tooltip('Set the Domain Of Influence, in meters.')
          im.PopItemWidth()
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip((selSpline.isConformToTerrain and 'Unconform' or 'Conform') .. ' the selected sidewalk spline to the surface below.')
          else
            end
            im.tooltip('Terraform the terrain to the selected Sidewalk Spline.')
          else
@/lua/ge/extensions/editor/rallyEditor.lua
        end
        im.tooltip("Generate all freeform notes from structured notes.")
      end
      im.tooltip(tostring(currentPath.fname))
      -- im.SameLine()
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua
  end
  im.tooltip("Shift-Drag in the world to create a new pacenote.")
  im.EndChild()

  im.tooltip(tt or "")
end
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua
    end
    im.tooltip("Shift-Drag in the world to place and rotate a new element.")
  else
  end
  im.tooltip("Copies the custom fields of this object to use for other objects.")
  im.SameLine()
  end
  im.tooltip("Pastes the stored custom fields into this object.")
  --im.SameLine()
  --end
  --im.tooltip("Replaces all other object's custom fields with the contents of this one.")
end
@/lua/ge/extensions/editor/dragRaceEditor/lanes.lua
    if im.IsItemHovered() then
      im.tooltip(string.format("ID: %s\nShort Name: %s\nLong Name: %s\nOrder: %d",
        lane.id or "N/A",
    -- This would open waypoint creation dialog
    im.tooltip("Waypoint creation not yet implemented")
  end
@/lua/ge/extensions/editor/biomeTool.lua
    end
    imgui.tooltip(item.internalName)
    imgui.SetCursorPos(textPos)
    end
    imgui.tooltip(item.internalName)
    imgui.SetCursorPos(textPos)
  editor.uiInputFloat2("##SlopeRange" .. layerType .. layerID, input2FloatValue, "%.2f", nil, editEnded)
  imgui.tooltip("Slope Inf. From-To")
  if editEnded[0] then
      end
      imgui.tooltip(item.internalName)
      imgui.SetCursorPos(textPos)
    editor.uiInputFloat2("##EP_RandomTilt" .. layerType .. layerID, input2FloatValue, "%.2f", nil, editEnded)
    imgui.tooltip("Random Tilt Range")
    if editEnded[0] then
@/lua/ge/extensions/flowgraph/nodes/ui/customUiLayout.lua
  end
  im.tooltip("Saves the current layout into the node.")
  if im.Button("Clear") then
  end
  im.tooltip("Clears the currently stored layout.")
  if self.storedLayout then
    end
    im.tooltip("Loads the currently stored layout.")
  end
  end
  im.tooltip("Saves the default freeroam layout.")
  end
  im.tooltip("Makes a copy of an existing layout and stores it in the node.")
@/lua/ge/extensions/editor/flowgraph/search.lua
  editor.uiIconImage(editor.icons.help, im.ImVec2(20,20))
  ui_flowgraph_editor.tooltip("Type any string to search for nodes, graphs and pins.\nBegin with 'node:', 'graph:' or 'pin:' to only search for those elements.")
end
      if result.info then
        ui_flowgraph_editor.tooltip(result.info.."\nIn: "..result.location)
      end
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
    im.PopItemWidth()
    im.tooltip("Number of states for this controller type (e.g. 3 states for a green, yellow, & red traffic light).")
    im.PopItemWidth()
    im.tooltip("State index to use as the default state (e.g. 3 for red).")
        editor.uiIconImage(editor.icons.star, iconVec, imColors.warning)
        im.tooltip("This state is the default state of this controller type.")
      end
    im.PopItemWidth()
    im.tooltip("Number of lights for this controller state.")
    im.PopItemWidth()
    im.tooltip("Set this to 0 to disable duration.")
  end
  im.tooltip("Shift-Click in the world to create a new signal instance point.")
    im.Button("?")
    im.tooltip("Signals are grouped together if they are in an intersection formation.")
    end
    im.tooltip("Highlights other instances in this group, in the selection list.")
    im.Button("?")
    im.tooltip("Select signal objects, such as traffic lights, to link with this instance. Remember to Save Level (Ctrl+S) after you are done.")
      end
      im.tooltip("Enables object selection mode to select signal objects.")
      end
      im.tooltip("Resets linked signal objects.")
    else
      end
      im.tooltip("Apply the dynamic field [signalInstance] to objects in this selection.")
      im.SameLine()
    im.Button("?")
    im.tooltip("States run in order; the next state starts when the timer reaches the current state duration.")
            if state.state == "redTrafficLight" then
              im.tooltip("This is usually the delay time until the next signal phase starts.")
            end
    im.PopItemWidth()
    im.tooltip("This can also be negative, to skip ahead in the sequence.")
    end
    im.tooltip("If true, this sequence starts with all signals in the off state.")
    im.Button("?")
    im.tooltip("Phases run in order, and each phase runs the assigned controllers. Each controller can only be used once per sequence.")
            end
            im.tooltip("Remove Controller from Phase")
            im.SameLine()
            end
            im.tooltip("Add Controller to Phase")
          end
            im.PopStyleVar()
            im.tooltip("Phase "..i)
          end
      end
      im.tooltip("Play")
    else
        end
        im.tooltip("Pause")
      else
        end
        im.tooltip("Play")
      end
      end
      im.tooltip("Stop")
    end
            end
            im.tooltip("Pause")
          else
            end
            im.tooltip("Play")
          end
          end
          im.tooltip("Advance Step")
          im.TableNextColumn()
      end
      im.tooltip("Automatically sets names of signals based on their properties.")
      end
      im.tooltip("Automatically selects all similar traffic light objects when one is selected.")
      end
      im.tooltip("Displays the closest road while the current signal is selected.")
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
  end
  im.tooltip("Remove " .. label)
  im.PopID()
  end
  im.tooltip("Automatically change all texture paths for a new set according to file name")
  end
  im.tooltip("Browse for new texture")
  im.SameLine()
  end
  im.tooltip("Browse for new texture")
  im.PopID()
  )
  if tooltip then im.tooltip(tooltip) end
  )
  if tooltip then im.tooltip(tooltip) end
  im.PopItemWidth()
  im.tooltip("Distance to begin fading into the Near value")
  im.PopItemWidth()
  im.tooltip("Distance of near value")
  im.PopItemWidth()
  im.tooltip("Distance of far value")
  im.PopItemWidth()
  im.tooltip("Distance where the far value has completed faded")
  if terrainMtlCopyProxy.diffuseMap ~= "" then
    im.tooltip(terrainMtlCopyProxy.diffuseMap)
  end
  end
  im.tooltip("Remove diffuse map")
  local cursorPosX = im.GetCursorPosX()
  if terrainMtlCopyProxy.macroMap ~= "" then
    im.tooltip(terrainMtlCopyProxy.macroMap)
  end
  end
  im.tooltip("Remove macro map")
  im.PushItemWidth(itemWidth)
  if terrainMtlCopyProxy.detailMap ~= "" then
    im.tooltip(terrainMtlCopyProxy.detailMap)
  end
  end
  im.tooltip("Remove detail map")
  im.PushItemWidth(itemWidth)
  if terrainMtlCopyProxy.normalMap ~= "" then
    im.tooltip(terrainMtlCopyProxy.normalMap)
  end
  end
  im.tooltip("Remove normal map")
  im.PushItemWidth(itemWidth)
          end
          im.tooltip("Upgrade Terrain Materials to the new PBR pipeline.")
        else
              end
              im.tooltip("Apply changes to the Terrain Material Texture Set object.")
            end
@/lua/ge/extensions/editor/terrainAndRoadImporter.lua
    end
    im.tooltip('Terraforms the terrain to some given peaks (from a .json file).')
    im.SameLine()
    end
    im.tooltip('Import a terrain (from 16-bit greyscale .png file).')
    im.SameLine()
    end
    im.tooltip('Import roads (from .json file).')
    im.SameLine()
    end
    im.tooltip('Reset (remove imported terrain and all imported roads).')
    im.PopStyleVar()
    im.tooltip('Set the terrain prominence - ie terrain will map to [0, zMax].')
    im.PopStyleVar()
    im.tooltip('Set the domain of influence of the terraforming.')
    im.PopStyleVar()
    im.tooltip('Set the terraforming margin (around roads).')
  end
@/lua/ge/extensions/editor/missionPlaybook.lua
        end
        im.tooltip("Switches to a clean career slot.")
        im.EndMenu()
        end
        im.tooltip("Runs all the elements with the current career slot.")
        if im.MenuItem1("Play with Empty Slot") then
        end
        im.tooltip("Switches to a clean career slot and runs all the elements there.")
        im.EndMenu()
        im.MenuItem1("(?)")
        im.tooltip("Load career manually the first time and stay in the level.")
      end
@/inspector/Views/HierarchicalPathComponent.js

    get tooltip()
    {

    set tooltip(x)
    {
@/lua/ge/extensions/editor/dynamicDecals/vehicleColorPalette.lua
  end
  im.tooltip("Picks a random color for each color palette from the color presets table and applies it.")
  end
  im.tooltip("Save the current color palettes")
      end
      im.tooltip("Remove color palette")
      im.SameLine()
  end
  im.tooltip("Load color palettes")
  end
  im.tooltip("Open editor preferences window")
    end
    im.tooltip("Switch with color palette 3")
    if editor.uiIconImageButton(editor.icons.arrow_drop_down, tool.getIconSizeVec2(), nil, nil, nil, "##colorPalette1_DownButton") then
    end
    im.tooltip("Switch with color palette 2")
    im.NextColumn()
    end
    im.tooltip("Randomize color. Picks a random color from the color presets and applies it.")
    end
    im.tooltip("Switch with color palette 1")
    if editor.uiIconImageButton(editor.icons.arrow_drop_down, tool.getIconSizeVec2(), nil, nil, nil, "##colorPalette2_DownButton") then
    end
    im.tooltip("Switch with color palette 3")
    im.NextColumn()
    end
    im.tooltip("Randomize color. Picks a random color from the color presets and applies it.")
    end
    im.tooltip("Switch with color palette 2")
    if editor.uiIconImageButton(editor.icons.arrow_drop_down, tool.getIconSizeVec2(), nil, nil, nil, "##colorPalette3_DownButton") then
    end
    im.tooltip("Switch with color palette 1")
    im.NextColumn()
    end
    im.tooltip("Randomize color. Picks a random color from the color presets and applies it.")
        end
        im.tooltip("Remove color palette")
        im.SameLine()
@/lua/ge/extensions/editor/meshSpline.lua
    end
    im.tooltip('Add a new mesh spline.')
    im.SameLine()
    end
    im.tooltip('Import mesh splines from a bitmap mask.')
    im.SameLine()
    end
    im.tooltip(isDrawPolygon and 'Click to stop drawing a selection polygon.' or 'Click to draw a selection polygon, to convert scene objects to a Mesh Spline.')
    im.SameLine()
      end
      im.tooltip('Remove all (enabled and not linked) mesh splines from the session.')
    else
      end
      im.tooltip((isLockShape and 'Unlock the shape of the mesh spline to move nodes separately' or 'Lock the shape of the mesh spline to move nodes rigidly'))
    else
      end
      im.tooltip('Export the session as a .PNG mask file. Will not include any disabled Mesh Splines.')
    else
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This mesh spline is linked to a Master Spline. To edit or remove it, first unlink it from within the Master Spline Editor.')
          elseif not spline.isEnabled then
            im.TextColored(cols.dullWhite, spline.name)
            im.tooltip('This mesh spline is disabled. To edit or remove it, first enable it.')
          else
            end
            im.tooltip('Edit the mesh spline name.')
            if im.IsItemActive() then
            end
            im.tooltip('Remove this mesh spline from the session.')
          else
            end
            im.tooltip((spline.isEnabled and 'Disable' or 'Enable') .. ' this mesh spline.')
          else
        end
        im.tooltip('Go to this mesh spline (move camera).')
      else
        end
        im.tooltip((selSpline.isConformToTerrain and 'Unconform' or 'Conform') .. ' the selected mesh spline to the surface below.')
      else
        end
        im.tooltip(tooltipText)
      else
        end
        im.tooltip('Splits the selected mesh spline into two, at the selected node.')
      else
        end
        im.tooltip('Flips the direction of the selected mesh spline (back to front).')
      else
        end
        im.tooltip('Simplifies the selected mesh spline (reduces the number of nodes).')
      else
        end
        im.tooltip('Saves the template of the selected mesh spline to disk.')
      else
        end
        im.tooltip('Sets the selected mesh spline to a template loaded from disk.')
      else
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the longitudinal spacing between each mesh component.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the vertical offset of the mesh components, in meters.')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the mesh components, around the local Y-axis (pitch) .')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the mesh components, around the local X-axis (yaw).')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the amount of random jitter to apply to the mesh components, around the local Z-axis (roll).')
      if im.IsItemActivated() then
        end
        im.tooltip("Reset to default")
      else
      end
      im.tooltip('Set the random seed for the spline jitter and placement.')
      if im.IsItemActivated() then
      end
      im.tooltip('Select The Concrete Barrier Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Plastic Barrier Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Metal Fence Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Mast Arm Lamp Post Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Victorian Lamp Post Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Bollard Preset.')
      im.SameLine()
      end
      im.tooltip('Select The Oil Drum Preset.')
      im.NextColumn()
          end
          im.tooltip('Select a new static mesh for the main component.')
          im.SameLine()
          im.Text(('[' ..selSpline.centerMeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the main component.')
          im.NextColumn()
          end
          im.tooltip('Select whether to include an variation 1 component (a variation of the main component).')
          im.SameLine()
          end
          im.tooltip('Select a new static mesh for the variation 1 component.')
          im.SameLine()
          im.Text(('[' ..selSpline.alias1MeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the variation 1 component.')
          im.NextColumn()
          end
          im.tooltip('Select whether to include an variation 2 component (a variation of the main component).')
          im.SameLine()
          end
          im.tooltip('Select a new static mesh for the variation 2 component.')
          im.SameLine()
          im.Text(('[' ..selSpline.alias2MeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the variation 2 component.')
          im.NextColumn()
          end
          im.tooltip('Select whether to include an variation 3 component (a variation of the main component).')
          im.SameLine()
          end
          im.tooltip('Select a new static mesh for the variation 3 component.')
          im.SameLine()
          im.Text(('[' ..selSpline.alias3MeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the variation 3 component.')
          im.NextColumn()
          end
          im.tooltip('Use a separate start cap mesh for the first section.')
          im.SameLine()
          end
          im.tooltip('Select a new static mesh for the start cap section.')
          im.SameLine()
          im.Text(('[' ..selSpline.startCapMeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the start cap section.')
          im.NextColumn()
          end
          im.tooltip('Use a separate end cap mesh for the last section.')
          im.SameLine()
          end
          im.tooltip('Select a new static mesh for the end cap section.')
          im.SameLine()
          im.Text(('[' ..selSpline.endCapMeshName .. ']') or '[Not Set]')
          im.tooltip('The currently-selected static mesh for the end cap section.')
          im.NextColumn()
          im.Text("Main:")
          im.tooltip('Set the rotation around the Z-axis for the main component.')
          im.SameLine()
          end
          im.tooltip('Set the rotation to 0°.')
          im.SameLine()
          end
          im.tooltip('Set the rotation to 90°.')
          im.SameLine()
          end
          im.tooltip('Set the rotation to 180°.')
          im.SameLine()
          end
          im.tooltip('Set the rotation to 270°.')
          im.NextColumn()
            im.Text("Var 1:")
            im.tooltip('Set the rotation around the Z-axis for the variation 1 mesh.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 0°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 90°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 180°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 270°.')
            im.NextColumn()
            im.Text("Var 2:")
            im.tooltip('Set the rotation around the Z-axis for the variation 2 mesh.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 0°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 90°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 180°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 270°.')
            im.NextColumn()
            im.Text("Var 3:")
            im.tooltip('Set the rotation around the Z-axis for the variation 3 mesh.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 0°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 90°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 180°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 270°.')
            im.NextColumn()
            im.Text("Start Cap:")
            im.tooltip('Set the rotation around the Z-axis for the start cap mesh.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 0°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 90°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 180°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 270°.')
            im.NextColumn()
            im.Text("End Cap:")
            im.tooltip('Set the rotation around the Z-axis for the end cap mesh.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 0°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 90°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 180°.')
            im.SameLine()
            end
            im.tooltip('Set the rotation to 270°.')
            im.NextColumn()
            end
            im.tooltip('Use a round robin distribution for the alias meshes.')
            im.SameLine()
            end
            im.tooltip('Use a random distribution for the alias meshes.')
            im.NextColumn()
                end
                im.tooltip("Reset to default")
              else
              end
              im.tooltip("Set the weight (similar to probability) of the main mesh.")
              if im.IsItemActivated() then
                  end
                  im.tooltip("Reset to default")
                else
                end
                im.tooltip("Set the weight (similar to probability) of the variation 1 mesh.")
                if im.IsItemActivated() then
                  end
                  im.tooltip("Reset to default")
                else
                end
                im.tooltip("Set the weight (similar to probability) of the variation 2 mesh.")
                if im.IsItemActivated() then
                  end
                  im.tooltip("Reset to default")
                else
                end
                im.tooltip("Set the weight (similar to probability) of the variation 3 mesh.")
                if im.IsItemActivated() then
            end
            im.tooltip("Reset to default")
          else
          end
          im.tooltip('Set the Domain Of Influence, in meters.')
          im.PopItemWidth()
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip("Reset to default")
          else
            end
            im.tooltip('Terraform the terrain to the selected Mesh Spline.')
          else
@/lua/ge/extensions/editor/assetManagementTool.lua
  end
  imgui.tooltip("Pick a target path")

        imgui.tooltip("Remove item")
        imgui.PopStyleColor()

          imgui.tooltip("Pick a target path")
        end
  end
  imgui.tooltip("Save the current list to a json file to process later")
  imgui.SameLine()
  end
  imgui.tooltip("Load list from a json file. Will merge items with the current list")
  imgui.SameLine()
  end
  imgui.tooltip("Clear the current list")
  end
  imgui.tooltip("Pick a scan path")
  end
  imgui.tooltip("Pick a scan path")
@/lua/ge/extensions/editor/terrainEditor.lua
        end
        im.tooltip("Add, edit, delete terrain materials")
      end
    end
    im.tooltip("Browse...")
    --TERRAIN: HOLE MAP IMAGE
    end
    im.tooltip("Browse...")
        if btnWidth < im.CalcTextSize(map.path).x + 2*var.style.ItemSpacing.x then
          im.tooltip(map.path)
        end
    end
    im.tooltip("Browse...")
      if im.IsItemHovered() and not var.sc_dragId then
        im.tooltip(string.format("%.2f", var.softSelectFilter[i]))
        if im.IsMouseClicked(0) then
  if tooltip then
    im.tooltip(tooltip)
  end
  if tooltip then
    im.tooltip(tooltip)
  end
  end
  if im.IsItemHovered() then im.tooltip(brushType.tooltip) end
  if sameLine == true then im.SameLine() end
  end
  if im.IsItemHovered() then im.tooltip(brush.tooltip) end
  if brush.disabled and brush.disabled == true then
  end
  im.tooltip("Changes the softness curve")
  im.SameLine()
  end
  im.tooltip("Terrain Height Picker")
  if editEndedBrushSoftness[0] == true then
  end
  im.tooltip("Set the domain of influence of the terraforming, in meters.")
  end
  im.tooltip("Set the terraforming margin, in meters.")
  end
  im.tooltip("Set the falloff exponent of the terraforming.")
  end
  im.tooltip("Set the noise roughness (set to zero for no noise).")
  end
  im.tooltip("Set the noise scale.")
    end
    im.tooltip('Terraform the terrain to the supported sources in the current selection.')
  end
  end
  im.tooltip('Clear the current terraforming polygon.')
  im.SameLine()
    end
    im.tooltip('Terraform the terrain to the supported sources within the polygon.')
  end
  end
  im.tooltip("Import Terrain")
  im.SameLine()
  end
  im.tooltip("Export Terrain")
  editor.uiVertSeparator(32)
@/lua/ge/extensions/editor/missionPlaybook/unlockedMissionsViewer.lua
          end
          im.tooltip(id)
        end
@/lua/ge/extensions/editor/dynamicDecals/textures.lua
      end
      im.tooltip(string.format("%s\nDouble-click to set texture as color texture\nLMB to select texture\nCtrl+LMB Add texture to selection\nRMB to open context menu", fileName))
      im.SameLine()
  end
  im.tooltip("Docs")
  im.SameLine()
  end
  im.tooltip("Preferences")
  im.SameLine()
  end
  im.tooltip("Open Textures Directory")
  im.SameLine()
        end
        im.tooltip("Remove tag")
        im.SameLine()
      end
      im.tooltip("Add tag")
      im.NextColumn()
          end
          im.tooltip("Remove tag")
          im.SameLine()
        end
        im.tooltip("Add tag")
        im.NextColumn()
@/lua/common/extensions/ui/imguiUtils.lua
  end
  if tooltip then imgui.tooltip(tooltip) end
            end
            imgui.tooltip(item.label)
          else
            end
            imgui.tooltip(item.label)
          end
          end
          imgui.tooltip(item.label)
        else
          end
          imgui.tooltip(item.label)
        end
@/lua/common/extensions/ui/imgui_custom_luaintf.lua

  function M.tooltip(message)
    if M.IsItemHovered() then
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veJBeamModifierLeakVis.lua
                end
                im.tooltip(tooltipStr)
              else
@/lua/ge/extensions/editor/flowgraph/projectSettings.lua
      editor.uiIconImage(editor.icons.visibility_off, im.ImVec2(20, 20))
      ui_flowgraph_editor.tooltip("This project is invisible. You can see it because you have Dev Mode enabled.")
      im.SameLine()
      editor.uiIconImage(editor.icons.goat, im.ImVec2(20, 20))
      ui_flowgraph_editor.tooltip("This project is transient. It cannot be saved.")
      im.SameLine()
@/lua/ge/extensions/flowgraph/nodes/types/setVariable.lua
    im.Text("???")
    ui_flowgraph_editor.tooltip("Variable missing..?")
  end
@/lua/ge/extensions/editor/dynamicDecals/inspector.lua
  im.InputText(string.format("##uid_%s", widgetId), editor.getTempCharPtr(layer.uid), nil, im.InputTextFlags_ReadOnly)
  im.tooltip("Read-only type")
  im.PopItemWidth()
  im.InputText(string.format("##type_%s", widgetId), editor.getTempCharPtr(string.format("%s Layer", helper.splitAndCapitalizeCamelCase(api.layerTypesMap[layer.type]))), nil, im.InputTextFlags_ReadOnly)
  im.tooltip("Read-only type")
  im.PopItemWidth()
@/lua/ge/extensions/editor/sitesEditor.lua
          end
          im.tooltip(site)
        end
@/lua/ge/extensions/editor/barriersEditor.lua
              editor_raceEditor.changedFromExternal()
            end im.tooltip("Adds all selected prefabs to the race, if they are not contained already.")
            if im.MenuItem1("Set Selection exactly to Race Editor") then
              editor_raceEditor.changedFromExternal()
            end im.tooltip("Adds all selected prefabs to the race and removed non-selected prefabs from the race")
            if im.MenuItem1("Copy Selection from Race Editor") then
              editor_raceEditor.changedFromExternal()
            end im.tooltip("Sets the currently selected prefebs to the one contained in the race.")
          end
        end
        im.tooltip(elem.dirInLevel)
        displayPrefab(elem, im.IsItemHovered())
        end
        im.tooltip(elem.dirInLevel)
        displayPrefab(elem, im.IsItemHovered())
@/lua/ge/extensions/editor/mainToolbar.lua
  end
  im.tooltip("Time Of Day Settings")
  end
  im.tooltip("Editor Icons & Camera Settings")
        end
        im.tooltip("Adjust icons visibility (CTRL + Scroll Wheel)")
        end
        im.tooltip("Adjust camera speed (Alt + Scroll Wheel)")
      end
      im.tooltip("Move All To Right")
      im.Spacing()
      if not anyModeSelected then im.EndDisabled() end
      im.tooltip("Move Selected To Right")
      im.Spacing()
      if not hasSelectedSelected then im.EndDisabled() end
      im.tooltip("Move Selected To Left")
      im.Spacing()
      end
      im.tooltip("Move All To Left")
@/lua/ge/extensions/editor/dynamicDecals/layerTypes/textureFill.lua
  end
  im.tooltip("Add texture fill layer")
end
@/lua/ge/extensions/editor/missionEditor/previewChecker.lua
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip(self.previewFile)
    im.SameLine()
    end
    im.tooltip("Correct Size for preview image should be 1920 x 1080 px, is " .. self.previewImage.size.x .." x " .. self.previewImage.size.y .." px.")
  else
    editor.uiIconImage(editor.icons.error_outline, imVec24x24, imVec4Red)
    im.tooltip("Requires a .png, .jpg or .jpeg file named 'preview' in the mission folder")
  end
    editor.uiIconImage(editor.icons.check, imVec24x24, imVec4Green)
    im.tooltip(self.thumbFile)
    im.SameLine()
    end
    im.tooltip("Correct Size for thumbnail image should be 200 x 200 px, is " .. self.thumbImage.size.x .." x " .. self.thumbImage.size.y .." px.")
  else
    editor.uiIconImage(editor.icons.error_outline, imVec24x24, imVec4Red)
    im.tooltip("Requires a .png, .jpg or .jpeg file named 'thumbnail' in the mission folder. Will use Preview otherwise.")
  end
@/lua/ge/extensions/editor/dragRaceEditor/waypoints.lua
    if im.IsItemHovered() then
      im.tooltip(string.format("Type: %s",
        waypoint.type or "N/A"))
@/lua/ge/extensions/editor/levelValidator.lua
    end
    im.tooltip("Find issues in this level (may take a few seconds)")
          end
          im.tooltip("Toggle visibility of ignored objects")
        end
@/lua/ge/extensions/editor/particleEditor.lua
      end
      im.tooltip("Create a new Emitter")
      end
      im.tooltip("Save Emitter to its file")
      end
      im.tooltip("Save Emitter to current level")
      end
      im.tooltip("Delete Emitter")
      if disabled then im.EndDisabled() end
@/lua/ge/extensions/editor/mapSensorEditor.lua
        end
        im.tooltip('Remove this sensor from the configuration.')
        im.SameLine()
          end
          im.tooltip('Edit the selected sensor.')
        elseif sensor.type == stype.tCamera then
          end
          im.tooltip('Preview camera outputs.')
        end
        end
        im.tooltip('Toggle between Edit and Live modes.')
        im.NextColumn()
    end
    im.tooltip('Add a Camera Sensor to the configuration.')
    im.SameLine()
    end
    im.tooltip('Add a LiDAR Sensor to the configuration.')
    im.SameLine()
    end
    im.tooltip('Add an Ultrasonic Sensor to the configuration.')
    im.SameLine()
    end
    im.tooltip('Add a RADAR Sensor to the configuration.')
    im.SameLine()
    end
    im.tooltip('Save the current sensor configuration, for this vehicle, to disk.')
    im.SameLine()
    end
    im.tooltip('Load a sensor configuration, for this vehicle, from disk.')
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis.')
        im.PopItemWidth()
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Render Color Image", uiVal)
        im.tooltip('Toggle whether to include the colour image in output.')
        sensor.renderColours = uiVal[0]
        im.Checkbox("Render Class Annotations", uiVal)
        im.tooltip('Toggle whether to include class annotations (segmentation) in output.')
        sensor.renderAnnotations = uiVal[0]
        im.Checkbox("Render Instance Annotations", uiVal)
        im.tooltip('Toggle whether to include instance annotations (segmentation) in output.')
        sensor.renderInstance = uiVal[0]
        im.Checkbox("Render Depth Image", uiVal)
        im.tooltip('Toggle whether to include the depth image in output.')
        sensor.renderDepth = uiVal[0]
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        end
        im.tooltip("Set the LiDAR to operate in 'Full 360 Degrees' mode.")
        im.SameLine()
        end
        im.tooltip("Set the LiDAR to operate in 'LFO' (low-frequency rotation) mode.")
        im.SameLine()
        end
        im.tooltip("Set the LiDAR to operate in 'Static' (no rotation) mode.")
        im.SameLine()
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of vertical resolution levels.')
        im.PopItemWidth()
        im.InputFloat("Vertical Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the vertical field of view, in degrees.')
        im.PopItemWidth()
        im.InputFloat("Horizontal Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the horizontal field of view, in degrees.')
        im.PopItemWidth()
        im.InputInt("Rotation Frequency (Hz) ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the rotation frequency, in Hz.')
        im.PopItemWidth()
        im.InputFloat("Max Detection Range ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the sensor maximum detection range, in meters.')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Include Segmentation Data", uiVal)
        im.tooltip('Toggle whether to include segmentation info (semantic annotations).')
        sensor.isAnnotated = uiVal[0]
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis.')
        im.PopItemWidth()
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Range Roundness ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip("Set the 'roundness' of the beam shape.")
        im.PopItemWidth()
        im.InputFloat("Range Cutoff Sensitivity ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sensitivity of the range cutoff.')
        im.PopItemWidth()
        im.InputFloat("Range Shape ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Focus ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sharpness of the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Min Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the near plane, in meters.')
        im.PopItemWidth()
        im.InputFloat("Range Direct Max Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the far plane, in meters.')
        im.PopItemWidth()
        end
        im.tooltip('Set preset beam shape: Triangular, 7m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Thin bulb, 8m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Ultra thin bulb, 8m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Spherical, 5m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Flat head bulb, 5m range.')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Tulip, 10m (long) range.')
        im.InputFloat("Sensitivity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the detection sensitivity.")
        im.PopItemWidth()
        im.InputInt("Window Width ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the width of the window used in processing the returns.')
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
        im.InputFloat("[X-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the X-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Y-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Y-Axis.')
        im.PopItemWidth()
        im.InputFloat("[Z-Axis] ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f m")
        im.tooltip('Set the sensor position on the Z-Axis.')
        im.PopItemWidth()
        im.InputInt("Horizontal Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the horizontal resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputInt("Vertical Resolution ###" .. tostring(ctr), uiVal, 10, nil)
        im.tooltip('Set the vertical resolution of the sensor, in pixels.')
        im.PopItemWidth()
        im.InputFloat("Field Of View ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip('Set the field of view of the sensor.')
        im.PopItemWidth()
        im.InputFloat("Near Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the near plane distance of the sensor (min depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Far Plane Distance ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f m")
        im.tooltip('Set the far plane distance of the sensor (max depth cutoff).')
        im.PopItemWidth()
        im.InputFloat("Range Roundness ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip("Set the 'roundness' of the beam shape.")
        im.PopItemWidth()
        im.InputFloat("Range Cutoff Sensitivity ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sensitivity of the range cutoff.')
        im.PopItemWidth()
        im.InputFloat("Range Shape ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Focus ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f")
        im.tooltip('Set the sharpness of the shape across the beam range.')
        im.PopItemWidth()
        im.InputFloat("Range Min Cutoff ###" .. tostring(ctr), uiVal, 0.1, nil, "%.4f m")
        im.tooltip('Set the near plane, in meters.')
        im.PopItemWidth()
        im.InputFloat("Range Direct Max Cutoff ###" .. tostring(ctr), uiVal, 1.0, nil, "%.4f m")
        im.tooltip('Set the far plane, in meters.')
        im.PopItemWidth()
        end
        im.tooltip('Set preset beam shape: Short Range (0.5m - 30m).')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Medium Range (1m - 70m).')
        im.SameLine()
        end
        im.tooltip('Set preset beam shape: Long Range (10m - 250m).')
        im.InputInt("Range Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the range dimension.')
        im.PopItemWidth()
        im.InputInt("Azimuth Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the azimuth dimension.')
        im.PopItemWidth()
        im.InputInt("Velocity Bins ###" .. tostring(ctr), uiVal, 1, nil)
        im.tooltip('Set the number of bins to divide the data into, in the velocity dimension.')
        im.PopItemWidth()
        im.InputFloat("Min Range ###" .. tostring(ctr), uiVal, 1, nil, "%.2f")
        im.tooltip("Set the minimum range to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Max Range ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the maximum range to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Min Velocity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the minimum velocity to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Max Velocity ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f")
        im.tooltip("Set the maximum velocity to display in the data.")
        im.PopItemWidth()
        im.InputFloat("Azimuth Half-Angle ###" .. tostring(ctr), uiVal, 1.0, nil, "%.2f deg")
        im.tooltip("Set the azimuth half-angle, used in data display.")
        im.PopItemWidth()
        im.InputFloat("Sensor Refresh Rate ###" .. tostring(ctr), uiVal, 0.01, nil, "%.4f s")
        im.tooltip('Set the time between sensor updates.')
        im.PopItemWidth()
        im.SliderFloat("Update Priority [0, 1]", uiVal, 0.0, 1.0, "%.3f")
        im.tooltip('The update priority of the sensor [0 = highest, 1 = lowest]. This is used for GPU scheduling')
        im.PopItemWidth()
        im.Checkbox("Visualise On Map", uiVal)
        im.tooltip('Toggle whether to visualise the sensor, or not.')
        sensor.isVisualised = uiVal[0]
@/lua/ge/extensions/gameplay/rally/tools/devTools.lua
    end
    im.tooltip("Load driveline and detect corners for visualization.\nDoes not create pacenotes.")
    end
    im.tooltip("Generate pacenotes from detected corners.\nThis will clear all existing pacenotes!")
    end
    im.tooltip("How many nodes ahead/behind to analyze (1-10)\nLower = more sensitive to local changes")
    end
    im.tooltip("Angle below which is considered straight (0.5-15 degrees)\nLower = more corners detected")
    end
    im.tooltip("Distance threshold for merging straights (0.1-5 meters)")
    end
    im.tooltip("Max iterations for simplification (1-20)")
      end
      im.tooltip("Display driveline as colored lines in 3D world\nRed = Right turns, Blue = Left turns, Grey = Straights")
    end
    im.tooltip("Generates elevation profile using metadata distances and split labels from route points")
      end
      im.tooltip("Display elevation profile points as colored spheres in the 3D world\nGreen: Regular points\nRed: Race pathnodes")
    else
      end
      im.tooltip("Create traffic exclusion zones from mission path and reload navgraph.")
      end
      im.tooltip("Clear all traffic exclusion zones and reload navgraph.")
    else
@/lua/ge/extensions/editor/rallyEditor/notebookInfo.lua
  end
  im.tooltip('Set the text-to-speech voice')
@/lua/ge/extensions/editor/rallyEditor/pacenotes/measurementsForm.lua
  im.TextColored(im.ImVec4(0, 1, 1, 1), "(?)")
  im.tooltip("Default: none\nSetting this will split the corner into two segments for separate intensity measurement.\nThis helps detect opens and tightens.")
  im.SameLine()
  im.tooltip("Automatically select the best intensity variation option based on circle fit quality")
@/lua/ge/extensions/gameplay/drag/debug.lua
          if im.IsItemHovered() then
            im.tooltip("Add selected vehicle from scenetree to Lane: " ..k)
          end
@/lua/ge/extensions/editor/gen/ui.lua
		end
		if list.text then im.tooltip(list.text) end
	end
	if lbl then
		im.tooltip(lbl)
	end
--                    title = title + (D.forRoad() and ' road' or ' base') -- (D.out.inconform or W.out.inconformm) and 'Restore' or 'Conform'
			im.tooltip(title)
--            buttonC(s, 'building_shape', c) -- 'tetromino') -- 't_shape')
			im.tooltip(s)
--            im.Unindent(-4)
				end
				im.tooltip('Ctrl-Z')
			end
			end
    --                im.tooltip('Clean-up!')
          im.EndGroup()
			end
			im.tooltip('Default scale')
			end
			im.tooltip('Square')
			end
			im.tooltip('Circle')
		elseif W.forScope() == 'top' then
			buttonC('roof_ridge', 'roof_ridge', color, im.ImVec2(30, 30))
			im.tooltip('Ridge toggle')
			buttonC('roof_border', 'roof_border', color, im.ImVec2(30, 30))
			im.tooltip('Border toggle')
				buttonC('gutter2', 'gutter', color, im.ImVec2(30, 30))
				im.tooltip('Gutter toggle')
			end
				buttonC('roof_chimney', 'roof_chimney', colorOff, im.ImVec2(30, 30))
				im.tooltip('Chimney toggle')
			end
				buttonCC('roof_'..s, 'roof_'..s, color, im.ImVec2(30, 30))
				im.tooltip(s)
				im.SameLine()
					buttonC('roof_'..s, 'roof_'..s, color, im.ImVec2(30, 30))
					im.tooltip(s)
				end
			end
			im.tooltip('Flat')
			end
			im.tooltip('Pyramid')
			end
			im.tooltip('Shed')
			end
			im.tooltip('Gable')
]]
					buttonC('window3', 'win_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Window toggle')
					buttonC('opened_door', 'door_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Door toggle')
						buttonC('storefront', 'storefront_toggle', color, im.ImVec2(30, 30), bgcolor)
						im.tooltip('Store front toggle')
					end
					buttonC('balcony', 'balc_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Balcony toggle')
					buttonC('corner', 'corner_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Corner toggle')
						buttonC('stringcourse', 'stringcourse_toggle', color, im.ImVec2(30, 30), bgcolor)
						im.tooltip('String course toggle')
						im.SameLine()
						buttonC('roof_border', 'plinth_toggle', color, im.ImVec2(30, 30), bgcolor)
						im.tooltip('Plinth toggle')
					end
					buttonC('pillar', 'pillar_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Pillar togglee')
						buttonC('pilaster', 'pilaster_toggle', color, im.ImVec2(30, 30), bgcolor)
						im.tooltip('Pilaster toggle')
					end
					buttonC('stairs', 'stairs_toggle', color, im.ImVec2(30, 30), bgcolor)
					im.tooltip('Stair toggle')
						buttonC('stairs', 'firestairs_toggle', color, im.ImVec2(30, 30), bgcolor)
						im.tooltip('Fire-stairs toggle')
					end
					end
					im.tooltip('Pillar toggle')
]]
						end
						im.tooltip('Attick toggle')
					end
						end
						im.tooltip('Roads')
						im.SameLine()
					local title = 'Populate' -- (D.out.inconform or W.out.inconformm) and 'Restore' or 'Conform'
					im.tooltip(title)
	                im.SameLine()
--                    title = title + (D.forRoad() and ' road' or ' base') -- (D.out.inconform or W.out.inconformm) and 'Restore' or 'Conform'
					im.tooltip(title)
]]
					buttonC('width_fit', 'win_spacefit', color, im.ImVec2(30, 30))
					im.tooltip('Regular intervals')
	--                im.NextColumn()
	--                    title = title + (D.forRoad() and ' road' or ' base') -- (D.out.inconform or W.out.inconformm) and 'Restore' or 'Conform'
					im.tooltip(title)
				end
						end
					im.tooltip('Balcony toggle')
					-- cornice
					end
					im.tooltip('Сornice toggle')
				end
						buttonC('width_fit', 'hole_fitmesh', colorOn, im.ImVec2(30, 30))
						im.tooltip('Match mesh size')
--                        button('Match width', 'pillar_span', 'width_fit')
--                        im.tooltip('Match mesh size')
--                        buttonC('width_fit', 'hole_fitmesh', nil, im.ImVec2(30, 30))
	--                            button('Match width', 'pillar_span', 'compare_arrows')
								im.tooltip('Match width')
							end
--                            button('Match width', 'pillar_span', 'compare_arrows')
							im.tooltip('Match width')
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/setDragVehicle.lua
        end
        ui_flowgraph_editor.tooltip(fun.desc)
      end
@/lua/ge/extensions/flowgraph/nodes/scene/storeStatics.lua
      if im.IsItemHovered() and editor_flowgraphEditor.allowTooltip then
        im.tooltip("ID: " .. e.currentId)
      end
      if im.IsItemHovered() and editor_flowgraphEditor.allowTooltip then
        im.tooltip("Show")
      end
    if im.IsItemHovered() and editor_flowgraphEditor.allowTooltip then
      im.tooltip("Remove")
    end
    if im.IsItemHovered() and editor_flowgraphEditor.allowTooltip then
      im.tooltip(e.shapeName)
    end
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua
  end
  im.tooltip("Shift-Drag in the world to create a new pathnode.")
  im.EndChild()
      end
      im.tooltip("(Time Trial Only) If checked, this pathnode will have checkpoint markers.\n\nIf unchecked, Pathnode name will be shown in parentheses.")
      end
      im.tooltip("If checked, this pathnode will be used as a split marker.\n\nIf unchecked, Pathnode name will be shown in with a '^' prefix.")
  end
  im.tooltip("Copies the custom fields of this object to use for other objects.")
  im.SameLine()
  end
  im.tooltip("Pastes the stored custom fields into this object.")
end
  end
  im.tooltip(tt or "")
end
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/vePartList.lua
              im.TableNextColumn()
              --im.tooltip('Double click to select and copy part name to clipboard')
              if im.IsItemHovered() and im.IsMouseDoubleClicked(0) then
              im.TableNextColumn()
              --im.tooltip('Double click to select and copy filename to clipboard')
              if im.IsItemHovered() and im.IsMouseDoubleClicked(0) then