Skip to content

Releases

v0.4.3

v0.4.3 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 01 Nov 19:45
a3c39e7
  • New: speed limit signs (BeamNGSpeedSign, km/h or mph, generated number texture, simple replaceable model, map.json speed limit segments along the road in front of the sign).
  • Performance: smart collision (simplified collision mesh for heavy objects, none for tiny ones), automatic distance LOD, meshes above 60,000 vertices are split into parts. The blanket performance warning is replaced by a summary.
  • Road Architect: spline nodes/splines are never marked as roads (duplicates), roads are detected at every export, RoadWidth() supported; signals and signs are snapped to the nearest road.
  • Materials: colour tint is baked into the exported texture.
  • Minimap: roads are not painted by default (BeamNG draws them), switches for info.json registration, offset corner, flips.
  • Water: stock texture paths written; water in the scene is detected.
  • Road Architect road surface/marking materials (RoadMaterial1-4, markers) are exported matte (roughness 0.9, no metal) and listed in the report with shader, tiling and texture size.
  • Fix: meshes whose name ends in digits (e.g. SketchUp "ID1012") were invisible in BeamNG: Torque reads the trailing number of a node name as detail size. A suffix is added to the node name.
  • New: speed zones (BeamNGSpeedZone): pick start and end node (Road Architect nodes), the limit applies to the road between them.
  • Roads: DecalRoad nodes closer than 2 m and sharp spikes are removed, width capped at 24 m (log: "centerline to edge distance exceeding 20m"); the minimap draws roads by default.
  • Roads: sparse road nodes (Road Architect: one per ~100 m) are resampled every 8 m (Catmull-Rom): BeamNG draws the minimap road and builds the AI graph between nodes, so they were long straight chords.
  • Speed zone gizmo follows the road nodes; speed waypoints get a small radius. New buttons: make selected objects (your own models) speed/stop signs; "Check selected objects" diagnosis.
  • Fix: signal lamp objects lost their material when the tool folder was replaced by an update (165 "empty material slot" warnings, grey lamps). Generated materials now live in Assets/UnityToBeamNG_Generated and are repaired at export.
  • Fix: compile error (ShapeOptions.Lod1 / Lod1Pixels were missing).
  • Materials: tiling/offset and colour texture are read from the property that is really used (custom shaders such as Road Architect's); shaders named Transparent/Fade/Cutout and Road Architect marker materials with an alpha texture are exported with transparency (fixes white, stretched marking overlays).
  • Report: skipped Road Architect lens meshes are no longer listed as "not exported".

Full Changelog: v0.4.2...v0.4.3

v0.4.2

v0.4.2 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 28 Oct 10:57
42e2af0
  • Map tab: own preview image; default description "Made with UnityToBeamNG!".
  • New: BeamNGTrafficSign (signStop/basicStop), BeamNGWater (WaterBlock), Water tab, minimap draws water.
  • Road Architect traffic lights / all-way stops are converted to BeamNG signals (Traffic tab button + automatic at export).
  • Road Architect detection also supports the FritzsHero fork (RoadIntersection, renamed fields) and reports what it found.
  • Converted Road Architect lights get own switching lamp objects (replace its texture atlas lens).
  • Water that already exists in the scene (flat meshes with a water material, HDRP WaterSurface) is exported as BeamNG water; such meshes are no longer exported as normal meshes.
  • Lamp switching Lua: finds signals via getSignalByName or getSignals.
  • Simpler GitHub issue templates.
  • Auto-detect Road Architect roads at export; minimap warns if no roads exist.
  • Removed warnings for features confirmed in game.

Full Changelog: v0.4.1...v0.4.2

v0.4.1

v0.4.1 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 24 Oct 10:33
5fb5da4
  • Fix (beamng.log / Unity warning): texture file names are shortened (max 40 chars + hash) - Windows "Could not find a part of the path" for very long sign texture names; temp folder name shortened.
  • Fix (beamng.log): materials named Camera, spotlight, Material (and other BeamNG class names) were not mapped; they get the prefix m_.
  • Terrain textures: PBR (v1.5) mode with TerrainMaterialTextureSet is now the default (setting terrainPbr). The set is written first in art/terrains/main.materials.json; structure check aborts the export if the set is undefined or a texture size does not match its slot. Classic mode kept as a switch.
  • Minimap: minimapImage on the TerrainBlock (no leading slash) in addition to the info.json entry; resolution "Auto" = terrain size (max 2048).
  • Vegetation: LODs per BeamNG mapping guide (<name>_a100, bb_autobillboard25, nulldetail10; grass _a12 + nulldetail4), wind (vertex colours R = bend, G = phase, B = flutter; bark black; windScale + ForestWindEmitter), tree collision only above 2.5 m (default), per-tree-type report lines.
  • README: logo, preview image, how-to GIF.

Full Changelog: 0.4.0...v0.4.1

v0.4.0

v0.4.0 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 23 Oct 09:53
82ef24a
  • New: vegetation. Trees painted with Unity's Paint Trees and grass / meshes painted with Paint Details on a Unity Terrain are exported as BeamNG forest items: art/forest/managedItemData.json (type TSForestItemData), forest/<type>.forest4.json (one JSON object per line: type, pos, rotationMatrix, scale) and a Forest object (theForest) in a new Vegetation group. Format taken from the BeamNG docs (Forest Data / Forest class).
    • Tree prefabs (LOD0 only, billboards skipped) are merged into one DAE per prefab; materials/textures go through the normal material export. Leaf/grass materials are exported double-sided with alpha test.
    • Collision: trees get "collidable": true and a convex trunk collision shape written as an extra Colmesh-1 node inside the DAE (radius from the prefab's CapsuleCollider or estimated from the trunk; bushes below a configurable height get none). Detail meshes (rocks...) can optionally collide with a bounding box. Grass never collides.
    • Details: grass textures become three crossed quads (tinted with Unity's healthy/dry colour), detail meshes use their prefab. Density slider + hard instance budget (the density is lowered automatically when the budget would be exceeded). Positions come from Unity's detail layer; heights from the terrain.
    • Limits (reported in the export report): forest items only have ONE uniform scale (tree width/height scale is averaged), no wind sway (windScale 0), no distance LOD / billboards.
  • New: minimap. minimap/terrain.png is rendered on the CPU (terrain layer colours + hillshade, roads, building footprints, trees) and registered in info.json as "minimap":[{"file","size","offset"}] (docs). Resolution 512-4096.
  • New "Vegetation" tab (trees, details, minimap options). Structure check now also verifies forest files (every placement type is defined, every shape exists, minimap file exists).
  • Unit tests for forest line format, collision orientation and foliage detection.

Full Changelog: v0.3.2...v4.0.0

v0.3.2

v0.3.2 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 22 Oct 10:58
6aac23a
  • Fix (from beamng.log): meshes whose name ends in a number (Cylinder_001, Object_7 ...) were rejected by BeamNG with "Shape with invalid detail levels" (Torque reads a trailing number as detail-level size) - this made stop sign, traffic lights and other models invisible. DAE node names now never end in a digit.
  • Fix (from beamng.log): materials named only with digits (1, 3, 8, typical for FBX buildings) failed with "Object name cannot start with a digit" / "Unable to find material" -> houses without textures. Names starting with a digit now get the prefix n_.
  • Fix: traffic-light lamp Lua extension crashed every frame (green was both a duration and the lamp list). Durations renamed to greenSec/yellowSec/allRedSec. modScript now uses the documented load() / setExtensionUnloadMode().
  • Meshes with more submeshes than materials use the last material (like Unity) instead of the grey missing_material.
  • Fix: structure check compared the DAE material id (<name>-material) with main.materials.json and aborted the export; it now compares the material name.
  • Fix: transparent materials had a black background in BeamNG. BeamNG's texture cooker drops the alpha channel of *.color.png. Textures with alpha are now split: opaque color PNG (colors bled into transparent areas) + separate grayscale *.opacity.dataR.png written as opacityMap. Sign-like (binary alpha) textures use alpha test, soft ones (markings, glass) use translucent + Z-write. doubleSided is exported for materials with Render Face = Both (_Cull = 0).
  • Fix: DAE ids - material ids are now <name>-material so they can never collide with the mesh/node id (a model whose mesh and material share a name, typical for Blender exports, could make BeamNG drop the object).
  • New: SkinnedMeshRenderer (FBX/Blender models with an armature or shape keys) are baked in their current pose and exported as static meshes instead of being skipped.
  • Report: lists every renderer that was NOT exported (disabled / LOD1+ ...), plus a note for materials set to a transparent render mode without alpha in the texture.
  • README: how to set up intersections, signals and AI traffic.

Full Changelog: v0.3.1...v0.3.2

v0.3.1

v0.3.1 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 21 Oct 20:31
9a011a7
  • Road Architect: detection via its SplineN node objects (works from Road1, the Spline or MainMeshes object) + spline sampling; diagnostic list of components when nothing is found.
  • Road markings: transparent/cutout materials are exported (translucent / alphaTest); emission exported as emissiveMap/emissiveFactor.
  • Traffic lights: poles with three emissive lamps, signal_lamps.json + Lua extension (scripts/unity_to_beamng/modScript.lua, lua/ge/extensions/unityToBeamNG/lights.lua) switch the lamps; ZIP now also contains scripts/ and lua/.
  • Tool window: "Report an issue / bug on GitHub" button. README: download link.

Full Changelog: v0.3.0...v0.3.1

v0.3.0

v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 21 Oct 09:30
003f8b6
  • Terrain textures: classic terrain materials with diffuseMap/diffuseSize per Unity layer. The PBR TerrainMaterialTextureSet mode is EXPERIMENTAL and off by default (BeamNG crashed with D3D12 'root cbv' when the set was not found).
  • Roads: Road Architect detection searches parents/children; new 'Find Road Architect roads in scene' button; fixed roads with a single point.
  • Road network: BeamNGRoad (child points or Road Architect) and BeamNGRoadPiece (modular 3D pieces with connectors) are exported as invisible DecalRoads; endpoints within 0.75 m are snapped together.
  • Traffic lights: BeamNGTrafficIntersection + BeamNGTrafficLight, one-button 4-way intersection, signals.json.
  • New tabs: Roads, Traffic. New option: left-hand traffic.

Full Changelog: v0.2.2...v0.3.0

v0.2.2

v0.2.2 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 20 Oct 19:28
f38cdf1
  • Fix: solid-color materials (e.g. a plain red Unity material) stayed white in BeamNG. BeamNG's TextureCooker rejects textures smaller than 16x16 ("Size must be a power of two and at least 16x16"). Solid color textures are now 16x16, and all exported textures are at least 16x16.
  • Collision mode now written as Visible Mesh Final (BeamNG logged a performance warning for Visible Mesh).
  • Removed the CloudLayer object (it logged "Missing texture"); set globalEnviromentMap on LevelInfo (BeamNG logged it as missing).
  • Confirmed in game: image textures now display correctly.

Full Changelog: v0.2.1...v0.2.2

v0.2.1

v0.2.1 Pre-release
Pre-release

Choose a tag to compare

@realTimexo realTimexo released this 20 Oct 19:12
5f64929
  • Fixed wrong rotation direction
  • Fixed material export

Full Changelog: https://github.com/realTimexo/UnityToBeamNG/commits/v0.2.1