RimWorld

RimWorld

4,025 ratings
Vehicle Framework
347
67
38
34
40
49
21
10
38
18
32
8
16
10
5
9
8
7
   
Award
Favorite
Favorited
Unfavorite
Mod, 1.4, 1.5
File Size
Posted
Updated
9.666 MB
4 Aug, 2023 @ 12:20pm
6 Aug @ 10:57pm
31 Change Notes ( view )

Subscribe to download
Vehicle Framework

Description
I only accept bug reports and feedback on discord and github.

Discord link[discord.gg]

Github[github.com]


This mod is a framework that enables modders to create vehicles. This mod does not include any vehicles on its own. If you are a modder that wishes to use the framework I highly suggest you join the discord server.


This framework treats all vehicles equally. This means there is no mechanical difference between land, sea, and aerial type vehicles other than certain configurations in the def.




Vehicles have their own health system that is split up among components. These components make up the health of the entire vehicle and may link to specific behavior (eg. tires could affect movement speed if damaged). Components are split into 2 categories: External and Internal

External components have physical hitboxes on the vehicle. This means vehicles can be strategically hit from certain sides to try and hit weaker parts of the vehicle, or hit the engine.

Internal components have no hitbox and will only be damaged if an external component with 0 health is hit and is “penetrated.” Pawns may also take damage if the vehicle is penetrated.


Vehicles use their own pathfinding. This means you can configure custom pathfinding for any of your vehicles and they will not interfere with each other.

On top of this, vehicles also use multi-cell pathfinding meaning they will take their hitbox into account when calculating their path to a location. This means vehicles won’t be fitting through tiny 1x1 doors or sitting on top of your walls.



This framework comes with 3 shaders that allow vehicles to be masked with patterns and skins. These are handled automatically as long as you have the appropriate mask textures and have also assigned the shader type in the graphic data. Patterns and skins are also shared across all vehicles unless defined to only be usable by (or exclude) certain vehicles. This means you don’t have to create any patterns in order for people to paint the vehicles you create and any patterns / skins you do create will be usable by vehicles from other mods. This shared system adds a wide variety of customization for players without requiring extra work from modders. The framework itself includes more than a dozen that you can use for reference.


Vehicles can be attached with turrets. These differ from vanilla and do not use the verb system, however they also do not have hardcoded positions meaning they can be offset to any point on the vehicle. Turrets can also be attached to other turrets, allowing them to rotate around the axis of rotation when the parent turret also rotates. A good example of this is a mounted machine gun atop a tank’s main turret. There are a few other options for modders as well, including but not limited to projectile offsetting for alternating barrels, overheating mechanics, recoil, custom projectile flags at runtime (eg. faster projectile speed that is separate from the projectile def such as high velocity mortar rounds), and more.




Aerial vehicles use a separate skyfaller launching system that gives a lot more freedom to how the animations and restrictions are handled. With this in mind, animations can be created per-vehicle and per-launch operation. If the default launch protocol classes aren’t enough for what you have in mind, you can expand on the ones I’ve created. Classes like these are always set up to be easily expanded upon. Launch protocols are split into ‘launching’ and ‘landing’ which allows you to create separate animations for both sequences. The ones provided with the framework are listed above.

All vehicle animations can be opened in-game within the animation editor that comes with the framework. The editor includes a line graph and preview window that allows you to tweak the animation without having to reboot the game over and over. Launch protocol animations can also throw flecks across the animation lifetime for visual effects.


Vehicles can overlay separate graphics on top of the vehicle texture that aren’t turrets. A good example would be a helicopter and its rotors. The graphic overlay system is also set up to be expanded upon, as the only ones the framework includes right now are Static and Rotating (which directly hooks up to the propeller takeoff class).


This framework includes an intricate mod settings page which is designed to bridge the gap between modder and player. The general settings cover most vehicle-wide mechanics while the vehicle settings are generated at runtime for each vehicle def. You won't need XML patches to rebalance specific vehicles.

Modders can utilize the c# attribute I made and add fields from their own ThingComps. Those fields will be picked up and added to the mod settings with no extra work or patching required.




This framework is very big, so there are going to be incompatibilities or weird interactions with other mods. I stay on top of this and push out fixes for these every patch.


I have a spreadsheet[docs.google.com] for tracking all mod statuses. If you don't see it on this spreadsheet, then no bugs have been reported for it.


This mod is still work in progress! You can look forward to the following features in the long term:

Raiders and Traders use vehicles
Aerial Vehicle events and Air Defense
Joint Warfare (close air support, bomb runs before raiders, etc.)
Combined Arms Tactics (better AI so raiders use formations with vehicles, utilize rockets against vehicles, etc.)

Links
Community Recommended Vehicle Mods[discord.gg]

FAQ[docs.google.com]

Github[github.com]

Discord[discord.gg]

Mod Incompatibilities[docs.google.com]

Big thank you to Oskar Potocki for the UI artwork!

[www.patreon.com]

[discord.gg]