TrackForge
Physics-driven tracked vehicles for Unreal Engine: a ready-to-drive tank pawn with ground-tracing suspension, track friction, engine torque curve, automatic/manual gearbβ¦
Highlights
All 18 features βTrackForge brings real tracked-vehicle physics to Unreal Engine. Every road-wheel is a suspension stack that traces the ground with a ray, a sphere or the shape of your wheel mesh and pushes the hull with spring and damper force. Every wheel touching the ground produces track-to-ground friction with separate static and kinetic coefficients along and across the track, and each track has its own speed: the engine drives it, the brakes slow it and the ground friction couples it to the vehicle. The result is a tank that accelerates, slides, climbs, rolls over obstacles and turns the way tracked vehicles do.
The TrackForge Tracked Vehicle pawn is ready to drive: drop a Blueprint child in a level, assign your hull mesh, call Set Throttle Input and Set Steering Input from your input and drive. It has an engine with a torque curve (your own Curve Float or the built-in curve), idle speed, rev limiter and engine braking; a gearbox with automatic or manual mode, any number of forward gears, reverse, final drive and shift time; service brakes and parking brakes per track; differential steering in motion and neutral steer, where the tracks counter-rotate to pivot on the spot when the vehicle is stationary. An anti-roll stabiliser links the left and right suspension, and cruise control and a speed limiter drive the throttle through the included PID controller.
A surface friction data asset sets the friction scale and rolling resistance of every physical surface, so ice, mud, sand and asphalt feel different. The Track Animation component moves tread instances along a spline, rotates sprockets, idlers and road-wheels, sags the upper run of the track according to the track tension and scrolls the UVs of your track materials with the speed of each side. The Wheel Sync component spins road-wheel meshes with their track and moves them with the suspension. The Turret component turns a turret and pitches its gun toward a target, by input or to given angles, with turning speeds and angle limits.
TrackForge is multiplayer ready with a server-authoritative model: the controlling client sends its input to the server, the server runs the physics and the movement, drive train state and turret angles replicate, while clients predict with the same physics. A telemetry struct gives speed, RPM, torque, gear, track speeds, slip and grounded wheels for HUDs and sounds, and the TrackForge.Debug console variable draws suspension rays, contact forces, friction forces and the telemetry on screen.
For custom machines, every building block is exposed: a physics pawn with an event on every physics step, suspension stacks, track and friction components, a vehicle suspension component, the PID controller and a library of sub-stepping friendly Blueprint nodes for forces, torques and body transforms.
TrackForge is part of the Alpha XP collection for Unreal Engine 4.27 and 5.8. Every feature is exposed to Blueprints and C++, it ships with styled HTML documentation, and it is compiled and verified warning-free against clean UE 4.27 and UE 5.8 projects.
Key features
- Ready-to-drive tracked vehicle pawn with throttle and steering input and differential
- Engine torque curve (Curve Float or built-in), idle speed, rev limiter, engine braking
- Gearbox with automatic and manual modes, gear ratios, reverse, final drive and shift time
- Service brakes and parking brakes per track
- Neutral steer: pivot turns on the spot when stationary
- Surface friction data asset: friction scale and rolling resistance per physical surface
- Track tension that sags the upper run of the track animation
- Track speed per side with automatic material UV scrolling
- Road-wheel visual sync: wheels spin with the track and follow the suspension
- Telemetry struct: speed, RPM, torque, gear, track speeds, slip and grounded wheels
- Anti-roll stabiliser between left and right suspension
- Cruise control and speed limiter driven by a PID controller
- Turret and gun aim rig with turning speeds and angle limits
- Server-authoritative network replication with client prediction
- Suspension stacks with ray check, sphere check or shape sweep
- Anisotropic track friction (friction ellipse) with static and kinetic coefficients
- Physics pawn with an event on every physics step and sub-stepping friendly Blueprint nodes
- TrackForge.Debug console variable for rays, forces and telemetry
Blueprint & C++ API
The API is organised into these entry points:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| TrackForgeVehiclePawn | Pawn | 27 | Ready-to-drive tracked vehicle: a physics chassis on two TrackForge tracks with an engine torque curve, an automatic or manual gearbox, service and parking brak⦠|
| TrackForgeLibrary | Function library | 20 | Sub-stepping friendly physics nodes and utility helpers. |
| TrackForgeTrackComponent | Scene component | 18 | One caterpillar track: a row of suspension stacks, track-to-ground friction and the track's own speed. |
| TrackForgeSuspensionStack | Object | 17 | One suspension stack: finds the road-wheel position with a ray, sphere or shape sweep, applies spring and damper force to the sprung component and exposes conta⦠|
| TrackForgeTrackAnimationComponent | Scene component | 14 | Animates a track: rotates sprockets, idlers and road-wheels, moves tread instances along a spline, sags the upper run by the track tension and scrolls track mat⦠|
| TrackForgeTurretComponent | Scene component | 12 | Turret / aim rig: this component is the yaw ring (it turns around its Z axis) and an optional child component is the gun (it pitches around its Y axis). |
| TrackForgeFrictionComponent | Scene component | 10 | Friction processor for registered contact points (collision hits or suspension contacts). |
| TrackForgeSurfaceFrictionAsset | Data asset | 5 | Friction coefficients per physical surface (Project Settings > Physics > Physical Surface). |
| TrackForgePIDController | Actor component | 4 | Proportional-integral-derivative controller working on a short history of measured errors. |
| TrackForgeWheelSyncComponent | Actor component | 4 | Road-wheel visual sync helper: spins wheel components by the speed of their track and moves them with the compression of their suspension stack. |
| + 2 more classes | Function libraries & objects | 4 | Grouped by feature in the node tables below. |
Callable runs when executed Β· Pure no exec pin, returns a value
Friction Component 10
| Node | Type | Available on | Description |
|---|---|---|---|
| Register Friction Point(Impact Force Or Impulse At Point: Vector, Treat As Impulse: Boolean, Contact Point Location: Vector, Contact Point Normal: Vector, Physical Material: Physical Material, β¦) | Callable | Component | Register collision event of the component related to Friction Component |
| Is Friction Point Active() β Boolean | Callable | Component | Checks if registered friction point is active |
| Reset Friction Points | Callable | Component | Empties array of stored friction points, this needs to be done after physics sub-stepping or before new collision information come in |
| Set Friction Surface Velocity(Friction Surface Vel: Vector) | Callable | Component | Sets velocity of the friction surface. In case of the tank it would be linear velocity of the track. |
| Set Friction Surface Speed(Friction Surface Speed: Float) | Callable | Component | Sets speed of the friction surface. In case of the tank it would be linear velocity of the track. |
| Physics Update(Number Of Contact Points: Float, Delta Time: Float) β Boolean, Normalized Reaction Force, Rolling Friction Force | Callable | Component | Runs calculations on friction component, applies friction force to effected component and returns reaction forces (forces that can effect track or a wheel) |
| Toggle Debug Mode | Callable | Component | Switches debug mode on/off with every call |
+ 3 more Friction Component nodes β full node reference
Physics Sub-stepping 8
| Node | Type | Available on | Description |
|---|---|---|---|
| TrackForge Get Transform -Comp(Target: Scene Component, In Socket Name: Name) β Transform | Callable | Static | Get world-space component's transform. BodyInstance is used to retrieve transform, its up-to date with physics sub-stepping. |
| TrackForge Set Transform -Comp(Target: Scene Component, Transform: Transform, Teleport: Boolean) | Callable | Static | Sets component's BodyInstance transform. To be used during sub-stepping to move/rotate physics bodies directly. |
| TrackForge Get Transform -Actor(Actor: Actor) β Transform | Callable | Static | Get world-space actor's root component transform. BodyInstance is used to retrieve transform, its up-to date with physics sub-stepping. |
| TrackForge Add Force -Comp(Target: Primitive Component, Force: Vector, Accel Change: Boolean) | Callable | Static | Add a force to a component. Can apply force during physics sub-steps. |
| TrackForge Add Force At Location -Comp(Target: Primitive Component, Force: Vector, Location: Vector) | Callable | Static | Add a force to a component at a particular location. Can apply force during physics sub-steps. |
| TrackForge Add Torque -Comp(Target: Primitive Component, Torque: Vector, Accel Change: Boolean) | Callable | Static | Add a torque to a component. Can apply torque during physics sub-steps. |
+ 2 more Physics Sub-stepping nodes β full node reference
Utility 13
| Node | Type | Available on | Description |
|---|---|---|---|
| TrackForge Get Mesh Component Reference by Name(Target: Actor Component, Name: String) β Mesh Component | Callable | Static | Returns reference to mesh component by the name of the component. |
| TrackForge Get Primitive Component Reference by Name(Target: Actor Component, Name: String) β Primitive Component | Callable | Static | Returns reference to any primitive component (mesh, box, sphere, capsule...) by the name of the component. |
| TrackForge Get Scene Component Reference by Name(Target: Actor Component, Name: String) β Scene Component | Callable | Static | Returns reference to any scene component by the name of the component. |
| TrackForge Get Spline Component Reference by Name(Target: Actor Component, Name: String) β Spline Component | Callable | Static | Returns reference to spline component by the name of the component. |
| TrackForge Get Instanced Static Mesh Component Reference by Name(Target: Actor Component, Name: String) β Instanced Static Mesh Component | Callable | Static | Returns reference to instanced static mesh component by the name of the component. |
| TrackForge Get Friction Coefficients from Friction Ellipse(Velocity Direction Normalized WS: Vector, Forward Vector WS: Vector, Mu X Static: Float, Mu X Kinetic: Float, Mu Y Static: Float, β¦) β Mu Static, Mu Kinetic | Callable | Static | Returns static and kinetic friction coefficients from friction ellipse in relation to direction of velocity vector |
| TrackForge Set Physics Constraint Linear Break Threshold(Target: Physics Constraint Component, Linear Break Threshold: Float) | Callable | Static | Sets linear break threshold on physics constraint component as such functionality is not exposed to BP. |
| Spherical to Unit Cartesian(Input Angles: Vector 2D) β Vector | Pure | Static | Converts from Spherical coordinates to Unit Cartesian |
| Unit Cartesian to Spherical(Input Unit Vector: Vector) β Vector 2D | Pure | Static | Converts from Unit Cartesian to Spherical |
+ 4 more Utility nodes β full node reference
PID Controller 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Add Measured Error(PID Error Item: Track Forge PID Error Item) | Callable | Component | Add measurement error and delta time to PID Controller's memory |
| Get Control Coefficient() β Float | Callable | Component | Get calculated control signal |
| Reset Controller | Callable | Component | Resets PID Controller by deleting all previously measured errors |
+ 1 more PID Controller nodes β full node reference
Surface Friction 5
| Node | Type | Available on | Description |
|---|---|---|---|
| Find Surface(Surface: TEnumAsByte<EPhysicalSurface>) β Boolean, Out Friction | Callable | Data asset | Finds the entry of a surface. Returns false (and the defaults) when the surface is not listed. |
| Get Friction Scale(Surface: TEnumAsByte<EPhysicalSurface>) β Float | Pure | Data asset | Friction scale of a surface (DefaultFrictionScale when not listed). |
| Get Rolling Friction Coefficient(Surface: TEnumAsByte<EPhysicalSurface>) β Float | Pure | Data asset | Rolling friction coefficient of a surface (DefaultRollingFrictionCoefficient when not listed). |
| Get Friction Scale For Material(Physical Material: Physical Material) β Float | Pure | Data asset | Friction scale of the surface type of a physical material. |
+ 1 more Surface Friction nodes β full node reference
Suspension Stack 17
| Node | Type | Available on | Description |
|---|---|---|---|
| Physics Update(Delta Time: Float) | Callable | Object | Runs calculations of suspension stack, applies spring force to sprung component and calculates new position of the road-wheels |
| Initialize | Callable | Object | Initializes class logic, finds references and pre-calculates parameters. Expected to be called from BeginPlay only |
| Toggle Debug Mode | Callable | Object | Toggle debug mode on/off |
| Get Suspension Force() β Magnitude, World Space, Local Space | Callable | Object | Get last calculated suspension force |
| Get Contact Data() β Point Active, Force At Point, Point Location, Surface Normal | Callable | Object | Get contact data at point where trace or sweep has succeeded. This information is necessary for friction component |
| Get Wheel Hub Position(In World Space: Boolean) β Vector | Callable | Object | Get wheel hub position |
| Get Wheel Hub Transform(In World Space: Boolean) β Transform | Callable | Object | Get wheel hub transform |
| Set Sprung Component Reference(Sprung Mesh Component Ref: Primitive Component) β Boolean | Callable | Object | Set reference of sprung component manually |
| Set Sweep Shape Component Reference(Sweep Shape Mesh Component Ref: Primitive Component) β Boolean | Callable | Object | Set reference of the component used for sweeps |
| Set Spring Stiffness(New Spring Stiffness: Float) | Callable | Object | Set stiffness of the spring |
| Set Spring Offsets(Spring Top Offset: Vector, Spring Bottom Offset: Vector, Update All Parameters: Boolean) | Callable | Object | Set new spring offsets |
| Set Suspension Force Scale(New Suspension Force Scale: Float) | Callable | Object | Sets scale of the final suspension force (spring + damping), useful for active suspension |
+ 5 more Suspension Stack nodes β full node reference
Track Animation Component 14
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Track Parts Angular Velocity(Angular Velocity: Float) | Callable | Component | Sets new angular velocity of the sprocket, idlers, roadwheels and treads |
| Set Track Linear Speed(Speed Cm Per Second: Float, Sprocket Radius: Float) | Callable | Component | Sets the linear speed of the track surface; the parts rotate at Speed / Sprocket Radius. |
| Get Track Linear Speed() β Float | Pure | Component | Linear speed of the track used for material scrolling, in cm/s. |
| Update Track Animation(Delta Time: Float) β Tread Angular Position, Track Parts Angular Position, Track Parts Rotator | Callable | Component | Updates animation of track elements. Should be called on each tick for maximum fidelity. Call less frequently for LODs. |
| Build Track Mesh And Spline | Callable | Component | Call from BP constructor to set track spline component into default state and add tread instances to Treads Instanced Mesh component. |
| Get Treads Transform Array() β Array of Transform | Callable | Component | Retrieve array of local space transforms of treads, to be used for custom rendering of treads or any other purpose |
| Get Secondary Treads Transform Array() β Array of Transform | Callable | Component | Retrieve array of local space transforms of secondary treads |
| Get Track Angular Position() β Float | Callable | Component | Fractional angular travel of the track inside the current sprocket tooth sector, in degrees. |
| Set Track Tension(New Tension: Float) | Callable | Component | Sets the track tension (0 = slack, 1 = taut). |
| Get Current Sag() β Float | Pure | Component | Current sag of the middle of the upper run, in cm. |
+ 4 more Track Animation Component nodes β full node reference
Track 18
| Node | Type | Available on | Description |
|---|---|---|---|
| Create Sub Objects | Callable | Component | Creates the suspension stacks from Suspended Wheels (called by BeginPlay; call again after changing the array at runtime). |
| Set Effected Mesh Reference(Effected Mesh Component Ref: Primitive Component) | Callable | Component | Set effected component reference, usually chassis/root component. |
| Update Physics(Delta Time: Float) | Callable | Component | Updates all suspension stacks of the track (suspension only). Call from the physics tick. |
| Simulate Track(Delta Time: Float, Drive Force: Float, Brake Force: Float, Locked: Boolean, Total Contact Points: Integer) | Callable | Component | Drives the track for one physics step after Update Physics: applies drive and brake force to the track, solves track-to-ground friction for every grounded road-β¦ |
| Toggle Debug Mode | Callable | Component | Toggle debug mode of all suspension stacks on/off. |
| Get Track Linear Speed() β Float | Pure | Component | Linear speed of the track surface in cm/s (positive moves the vehicle forward). |
| Set Track Linear Speed(New Speed: Float) | Callable | Component | Overrides the linear speed of the track surface in cm/s. |
| Get Sprocket Angular Speed() β Float | Pure | Component | Angular speed of the drive sprocket in rad/s. |
| Get Ground Speed() β Float | Pure | Component | Speed of the vehicle over the ground along the track, at the track center, in cm/s (last simulated step). |
| Get Track Slip() β Float | Pure | Component | Slip of the track: (track speed - ground speed) / max(|track speed|, |ground speed|, 100 cm/s), between -1 and 1. |
| Get Num Grounded Wheels() β Integer | Pure | Component | Number of road-wheels in contact with the ground after the last update. |
| Get Num Suspension Stacks() β Integer | Pure | Component | Number of suspension stacks of the track. |
+ 6 more Track nodes β full node reference
Turret 12
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Aim Target(World Location: Vector) | Callable | Component | Aim at a world location. |
| Clear Aim Target | Callable | Component | Stop aiming and keep the current angles. |
| Set Aim Input(Yaw Input: Float, Pitch Input: Float) | Callable | Component | Turn with rate input: -1..1 fractions of Yaw Speed and Pitch Speed. |
| Set Desired Angles(Yaw: Float, Pitch: Float) | Callable | Component | Turn to explicit angles (degrees, relative to the rest rotation). |
| Get Current Yaw() β Float | Pure | Component | Current yaw in degrees relative to the rest rotation. |
| Get Current Pitch() β Float | Pure | Component | Current gun pitch in degrees relative to the rest rotation. |
| Get Desired Yaw() β Float | Pure | Component | Yaw the turret is turning to. |
| Get Desired Pitch() β Float | Pure | Component | Pitch the gun is turning to. |
+ 4 more Turret nodes β full node reference
Vehicle Input 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Throttle Input(Value: Float) | Callable | Pawn | |
| Set Steering Input(Value: Float) | Callable | Pawn | |
| Set Brake Input(Value: Float) | Callable | Pawn | Service brake on both tracks, 0-1. |
| Set Service Brakes(Left: Float, Right: Float) | Callable | Pawn | Service brake per track, 0-1. |
| Set Parking Brake(Engaged: Boolean) | Callable | Pawn | Parking brake on both tracks. |
| Set Parking Brake Side(In Side: Track Forge Side, Engaged: Boolean) | Callable | Pawn | Parking brake of one track. |
+ 2 more Vehicle Input nodes β full node reference
Gearbox 9
| Node | Type | Available on | Description |
|---|---|---|---|
| Shift Up | Callable | Pawn | |
| Shift Down | Callable | Pawn | |
| Set Gear(Gear: Integer) | Callable | Pawn | Manual mode: selects a gear (-1 reverse, 0 neutral, 1..N forward). Switches the gearbox to manual. |
| Set Gearbox Mode(New Mode: Track Forge Gearbox Mode) | Callable | Pawn | |
| Get Gearbox Mode() β Track Forge Gearbox Mode | Pure | Pawn | |
| Get Current Gear() β Integer | Pure | Pawn |
+ 3 more Gearbox nodes β full node reference
Engine 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Engine RPM() β Float | Pure | Pawn | |
| Get Engine Torque At RPM(RPM: Float) β Float | Pure | Pawn | Torque in N*m produced at full throttle at the given RPM (Torque Curve or the built-in curve). |
Speed Control 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Cruise Control(Enabled: Boolean, Target Speed Kmh: Float) | Callable | Pawn | Enables cruise control at a target forward speed (km/h); the PID controller drives the throttle. |
| Is Cruise Control Active() β Boolean | Pure | Pawn | |
| Set Speed Limit(Speed Limit Kmh: Float) | Callable | Pawn | Sets the speed limiter (km/h, 0 = off). |
Telemetry 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Telemetry() β Track Forge Telemetry | Pure | Pawn | |
| Get Track Speed(In Side: Track Forge Side) β Float | Pure | Pawn | Track surface speed in cm/s (use it for UV scrolling or sounds). |
| Get Forward Speed Kmh() β Float | Pure | Pawn |
+ 1 more Telemetry nodes β full node reference
Network 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Is Simulating Locally() β Boolean | Pure | Pawn | True when this machine runs the vehicle physics (server, standalone, or a client with Clients Simulate Physics). |
Vehicle Suspension Component 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Effected Component Mesh Reference() β Primitive Component | Callable | Component | |
| Update Physics(Delta Time: Float) | Callable | Component | Updates the suspension of every track. Call from the physics tick. |
| Get Tracks() β Array of Track Forge Track Component | Pure | Component | Tracks driven by this component. |
Wheel Sync 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Refresh Wheels | Callable | Component | Re-resolves the wheel components and stores their rest transforms (call after editing Wheels at runtime). |
| Update Wheels(Delta Time: Float) | Callable | Component | Updates every wheel for DeltaTime seconds (called automatically every frame). |
| Get Wheel Angle(Wheel Index: Integer) β Float | Pure | Component | Current spin angle of a wheel in degrees. |
+ 1 more Wheel Sync nodes β full node reference
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | When it fires |
|---|---|---|
| On Gear Changed | New Gear (Integer) | Fires when the gearbox finishes a gear change. |
Options & enums
| Enum | Values |
|---|---|
| Suspension Mode | Ray Check Sphere Check Shape Sweep |
| Aim Mode | Hold Target Input Angles |
| Side | Left Right |
| Gearbox Mode | Automatic Manual |
Compatibility
One ready-made build per engine version is included in the download β copy the one that matches your project.
| Platform | Supported in |
|---|---|
| Windows | Editor & packaged |
| macOS | Editor & packaged |
| Module | Type | Loading phase |
|---|---|---|
| TrackForge | Runtime | Default |
Technical details
| Code modules | TrackForge (Runtime) |
|---|---|
| Blueprints | 0 Β· C++ classes: 13 |
| Network replicated | Yes |
| Development platforms | Windows: Yes, Mac: Yes |
| Target build platforms | Win64, Mac |
| Third-party software | No |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 13 + 20 structs |
| Blueprint nodes | 135 |
| Events | 1 |
| Documentation | Documentation.html (in the download) |
| Download | TrackForge.zip Β· 279 KB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| TrackForge 4.27.zip | Plugin build for Unreal Engine 4.27 |
| TrackForge 5.8.zip | Plugin build for Unreal Engine 5.8 |
| Documentation.html | Documentation (open in a browser) |
Quick start
- Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
- Copy the TrackForge folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable TrackForge under Edit βΊ Plugins and restart the editor.
- Right-click in any Blueprint graph and search Friction Component β or include the public headers from C++.
- Package for your target platform (Windows, macOS).
Good to know
Built and verified warning-free for Unreal Engine 4.27 and 5.8. C++ classes: TrackForge Tracked Vehicle (pawn), TrackForge Physics Pawn, Track, Suspension Stack (object), Suspension Stack component, Vehicle Suspension, Friction, Track Animation, Wheel Sync, Turret, PID Controller, Surface Friction (data asset) and TrackForge Library. Physics runs on PhysX in UE 4.27 and on Chaos in UE 5.8; on Chaos the physics-step event runs once per frame. The server is authoritative; clients predict with the replicated input and are corrected by replicated movement. No content assets are included; bring your own meshes. The module is enabled for Win64 and Mac; the code is platform-independent engine C++ with no OS-specific calls. Developed and maintained by Alpha XP.
Everything included
- Ready-to-drive tracked vehicle pawn with throttle and steering input and differentialβ¦
- Engine torque curve (Curve Float or built-in), idle speed, rev limiter, engine brakingβ¦
- Gearbox with automatic and manual modes, gear ratios, reverse, final drive and shift time
- Service brakes and parking brakes per track
- Neutral steer: pivot turns on the spot when stationary
- Surface friction data asset: friction scale and rolling resistance per physical surface
- Track tension that sags the upper run of the track animation
- Track speed per side with automatic material UV scrolling
- Road-wheel visual sync: wheels spin with the track and follow the suspension
- Telemetry struct: speed, RPM, torque, gear, track speeds, slip and grounded wheels
- Anti-roll stabiliser between left and right suspension
- Cruise control and speed limiter driven by a PID controller
- Turret and gun aim rig with turning speeds and angle limits
- Server-authoritative network replication with client prediction
- Suspension stacks with ray check, sphere check or shape sweep
- Anisotropic track friction (friction ellipse) with static and kinetic coefficients
- Physics pawn with an event on every physics step and sub-stepping friendly Blueprint nodes
- TrackForge.Debug console variable for rays, forces and telemetry
Platforms
Requirements
- Unreal Engine 4.27 and 5.8
- Develop on Windows (Win64)
- Blueprints and C++
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key β 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0Latest
- Unreal Engine 4.27 and 5.8
- Blueprint and C++ API, HTML documentation
Be the first to review TrackForge β reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal β One non-commercial project. Commercial β Ship paid products. Extended β Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes β paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AudioLens
Real-time audio analysis: FFT spectrum, onset and beat detection, and a full set of time- and frequency-domain descriptors..
β β β β β No reviews yetTTechHarbour$14.00BlueprintTCP
BlueprintTCP lets you connect to any TCP server and exchange data entirely from Blueprints β no C++ and no networking boilerplate.
β β β β β No reviews yetTTechHarbour$12.99BluetoothLink
Bluetooth Low Energy for Unreal - scan, connect, read, write and subscribe to BLE devices on Android and iOS.
β β β β β No reviews yetTTechHarbour$11.99ClusterLink
SocketCluster realtime client for Unreal - pub/sub channels, auth engine and JSON codec, usable from Blueprints.
β β β β β No reviews yetTTechHarbour$11.99