Skip to content
Ferdinand Calo edited this page Aug 21, 2021 · 5 revisions
# Data Overview
DataType: PART
File Ending: .part
Has Own Item: yes
Has TMT Model: yes/optional

Config location: ./assets/<packid>/config/parts/<here>.part
Model location: net.fexcraft.mod.addon.<packid>.models.part.<here> OR CUSTOM

Parts are essential if you want to create vehicles in FVTM.
They also offer you a lot of features to enrich both looks and functionality of your vehicle.
They can have functions (see Part Function), aswel as hold Attributes which will
get applied to your vehicle - once you install the part - and removed once you deinstall.

Parts usually have a main category, only one part of a category can be installed in a vehicle.
You can define a part to be installable into various more categories aswel though!
All a matter of config.

Some predefined Part Functions in FVTM will allow the part to add new Seats, Wheel Slots,
Inventories and other into the vehicle, a function can also make the part work as e.g. Engine
or Wheel. Perhaps in the future more predefined functions will be added.
If you know java/modding, you can add your own!

Another interesting feature made for parts - especially in FVTM 3 - are Part Installation Handlers.
When configuring a part you can choose one - or use the default one, if you want the part
to work as Wheel in the vehicle, you have to use the WheelInstallationHandler!
Same as functions, you can create your own if you know enought of java/modding.

None the less, the standard functions and handlers inside FVTM offer you a lot.

Some examples are at FVP!


Here the overview of the Fields in a part json config file:

  • RegistryName - the registryname, should be packid:part_id
  • Addon - the addon the part is in, e.g. fvtm:fvp
  • Name - optional name field
  • Description - can be either a string (supports line breaks \n) or string array
  • Texture - optional, one NamedResourceLocation - the parts's texture
  • Textures - optional array of NamedResourceLocations - the part's textures
  • Attributes - optional, see Attribute
  • Modifiers - optional, see Modifier
  • Function - optional, defines one function
  • Functions - optional, array of functions (see Part Function)
  • Installtion - optional, see Part Installation Handler
  • Script - optional, class adress of a Vehicle Script
    or when the script you want to use requires init/data:
"Script":{
    "clazz": "my.pack.scripts.MyScript.class",
    "data": {
        "info": "content of this may vary based on script",
        "width": 5,
        "default": false
    }
}
  • Scripts - optional, array of Vehicle Script classes (optionally with data, see above)
  • Model - the Model, check the wiki page for more info,
    set as "null" if the part is expected to have no model

This datatype creates an own Item, as such you will need to create a ItemModel JSON and supply a texture,
this is a vanilla/forge process, as such customisation and other is not matter of FVTM.
The expected path for the model will be /assets/<packid>/models/item/<partid>.json
The usual path for the texture is /assets/<packid>/textures/items/<partid>.png
For more info how the JSON should look, either take a look at GEP or vanilla minecraft.


This datatype OVERRIDES (only with WHEEL function) the default Item Rendering, as such the
vanilla JSON model may not get displayed, but instead a 3D representation if this Wheel Part's Model will be.

Clone this wiki locally