Skip to content

ForeverTAS 0.2.2

Choose a tag to compare

@Skycrafter-dev Skycrafter-dev released this 10 Aug 08:07
· 121 commits to main since this release

ForeverTAS 0.2.2

  • Search, scripting, telemetry, race-viewer, and map-rendering fixes for the 0.2.2 release.
  • CUDA acceleration supports NVIDIA GeForce GTX 750/750 Ti, GTX 900-series, GTX 10-series, GTX 16-series, and RTX 20/30/40/50-series GPUs, plus many NVIDIA workstation GPUs. CPU mode works without an NVIDIA GPU.
  • Linux x86_64 AppImage and Windows x86_64 ZIP are attached below.

Condition scripting

Conditions select which evaluation ticks are eligible. Use one comparison per non-empty line; all lines are ANDed. Identifiers/functions are case-insensitive.

Syntax: comparisons >, <, >=, <=, =; arithmetic +, -, *, /; scalar parentheses; numeric constants; vector literals (x, y, z). ==, !=, OR, and comments are not supported. Scripts are limited to 256 compiled instructions.

Functions: kmh(x) (m/s → km/h), deg(x) (radians → degrees), time_since(x) (current simulation time minus x, in seconds), distance(a, b) (3D Euclidean distance), variable(name) / var(name) (external variable; quoted names are also accepted).

Scalar variables:

  • Position: car.x, car.y, car.z; aliases car.position.x, car.position.y, car.position.z.
  • Previous position: car.prev.x, car.prev.y, car.prev.z; aliases car.prev.position.x, car.prev.position.y, car.prev.position.z.
  • World linear velocity: car.vel.x, car.vel.y, car.vel.z; aliases car.velocity.x, car.velocity.y, car.velocity.z.
  • Previous world linear velocity: car.prev.vel.x, car.prev.vel.y, car.prev.vel.z; aliases car.prev.velocity.x, car.prev.velocity.y, car.prev.velocity.z.
  • Angular velocity: car.vel.pitch, car.vel.yaw, car.vel.roll; aliases car.velocity.pitch, car.velocity.yaw, car.velocity.roll.
  • Previous angular velocity: car.prev.vel.pitch, car.prev.vel.yaw, car.prev.vel.roll; aliases car.prev.velocity.pitch, car.prev.velocity.yaw, car.prev.velocity.roll.
  • Local velocity: car.localvel.x, car.localvel.y, car.localvel.z; aliases car.localvelocity.x, car.localvelocity.y, car.localvelocity.z.
  • Previous local velocity: car.prev.localvel.x, car.prev.localvel.y, car.prev.localvel.z; aliases car.prev.localvelocity.x, car.prev.localvelocity.y, car.prev.localvelocity.z.
  • Speed magnitudes: car.speed, car.prev.speed, car.localspeed, car.prev.localspeed.
  • Rotation: car.yaw, car.pitch, car.roll; aliases car.rotation.yaw, car.rotation.pitch, car.rotation.roll.
  • Previous rotation: car.prev.yaw, car.prev.pitch, car.prev.roll; aliases car.prev.rotation.yaw, car.prev.rotation.pitch, car.prev.rotation.roll.
  • Car state: car.freewheel, car.lateralcontact, car.sliding (aliases car.is_sliding, car.is), car.gear, car.rpm, car.turning_rate (alias car.tr), car.turbo_type (alias car.tt), car.turbo_boost_factor (alias car.tbf), car.cps (collected checkpoint count).
  • Search state: iterations, last_improvement.time, last_restart.time.
  • Wheels: for each of frontleft, frontright, backleft, backright: car.wheels.<wheel>.groundcontact, car.wheels.<wheel>.is_sliding (alias car.wheels.<wheel>.is), and car.wheels.<wheel>.surface.

Vector variables (usable by distance): car.pos / car.position, car.prev.pos / car.prev.position, car.vel / car.velocity, car.prev.vel / car.prev.velocity, car.localvel / car.localvelocity, car.prev.localvel / car.prev.localvelocity.

External variable: when the Point Target evaluator is selected, bf_target_point is available as a 3D vector through variable(bf_target_point) / var(bf_target_point).