Skip to content

Vanilla Converter

Nerd-eee edited this page Jul 14, 2026 · 2 revisions

The converter mod: https://steamcommunity.com/sharedfiles/filedetails/?id=3763050326

DESCRIPTION

Adding this mod to a save game will attempt to convert any vanilla-based block weapons within all mods to a WeaponCore-compatible format, allowing you to combine them with WeaponCore weapon mods. It currently is not compatible with Vanilla+ weapons.

LIMITATIONS/NOTES

THIS TRANSLATES VANILLA STATS ONLY! Vanilla+ stats will BE IGNORED

  • Missile Richochets will be ignored: WC lacks them entirely

  • Weapon setting DeviateShotAngleAiming will be ignored

  • Missile weapons with acceleration will always start from 0m/s.

    • If there is no acceleration specified and skip acceleration is false, then acceleration will be set to 0.001m/s², starting from 0m/s velocity.
    • If skip acceleration is true then the ammo will use the lesser of desired and initial speed.
  • DeathMessage will be ignored

  • Missile-type ammo explosions will only affect voxels if AFFECT_VOXELS is defined in ExplosionFlags

  • Weapon setting MuzzleFlashLifeSpanwill be ignored

  • Weapon setting ReloadTime will be rounded down to the nearest tick

  • Weapon setting RateOfFire will be rounded down to only fire after an integer number of ticks. Essentially, anything between 3600 and 1800 will be rounded to 1800, between 1800 and 1200 --> 1200, etc. 3600, 1800, 1200 are unaffected.

  • CubeBlock setting IdleRotation will be ignored and effectively be false

  • CubeBlock settings AmmoPullAmountPerTick and InventoryFillFactorMax will be ignored (not accessible). InventoryFillFactorMax equivalent is set to 0.95

  • ALL Cubeblock TargetingGroups will be ignored in favor of TypeIDs via WC's system

  • Vanilla projectile behavior of damaging your own grid is disabled, and the world toggle is ignored

  • Weapon types MUST the following subpart setups (no subpart dictionary like the vanilla autocannon or alternate subpart names like gatling reskin)

    • InteriorTurret/Searchlight must use InteriorTurretBase1 for azimuth and InteriorTurretBase2 for elevation, Searchlight must use spotlight for muzzle while InteriorTurret must use muzzle_projectile_1
    • LargeGatlingTurret must use GatlingTurretBase1 for azimuth, GatlingTurretBase2 for elevation. GatlingBarrel must be used for the spinpart and is optional
      • If MuzzleProjectileDummyName is not defined, muzzle_projectile must be used for the muzzle
      • If CameraDummyName is not defined, muzzle_projectile will be used for the scope
    • SmallGatlingGun must use Barrel as a mandatory spinpart, and muzzle_projectile for the muzzle (attached to Barrel)
    • SmallMissileLauncher/SmallMissileLauncherReload must have no subparts used in the weapon
      • Muzzles MUST be defined in the weapon definition under </Effects>. If none are defined then only muzzle_missile_001 will be used
    • LargeMissileTurret must use MissileTurretBase1 for azimuth, MissileTurretBarrels for elevation
      • Muzzles MUST be defined in the weapon definition under </Effects>. If none are defined then only muzzle_missile_001 will be used
      • If CameraDummyName is not defined, the first defined muzzle will be used for the scope
  • ShotsInBurst must be a multiple of the first ammo type's ammo capacity, and may vary if different ammo magazines have different ammo capacities

    • WC uses a MagsPerReload approach, so internally the replacer sets MagsPerReload to ShotsInBurst / (the first) AmmoMag Capacity, rounded up
  • Projectile-type weapons with multiple ammos using ProjectileCount will fire the ProjectileCount specified in the top-most ammo type per shot

  • Targeting options being enabled/disabled based off of sbc will do nothing

  • Targeting options do not work for Friends, Enemeies, and Stations (WC lacks those options). If missiles are not in the hidden list then they will be prioritized

  • PreFire particles will show up on all muzzles

  • Only one particle may be used for all muzzle particles, if multiple are defined it will use the one with the most uses. If theres a tie it will use the highest on the list

    • Effects settings ParticleBirthStart, ParticleBirthMin, ParticleBirthMax, ParticleBirthDecrease, ParticleBirthIncrease will be ignored
    • Effects setting Loop must match the particle definition
  • Only one hit particle may be defined, and has the following order:

    1. If EndOfLifeEffect is defined it will use that
    2. otherwise it will attempt to use the particle defined in MaterialProperties, with the following priority: a. Metal/Glass/GlassOpaque b. Wolf/Spider/Character/CharacterFemale/Ammo
  • Projectile line draws lack length randomizations

  • Missile-type ammo hit particle will only show up if it didn't hit anything if FORCE_CUSTOM_END_OF_LIFE_EFFECT or CREATE_PARTICLE_EFFECT are defined in ExplosionFlags, or if EndOfLifeEffect is defined

  • Hit sounds are constrained to the following: Voxels, Grids, Players, Floating Objects, and will do so in the following order

    1. If defined in MaterialProperties, then it will use the ones defined, in no specific priority

      a. Metal/Glass/GlassOpaque will be used for Grids

      b. Wolf/Spider/Character/CharacterFemale will be used for Players

      c. Ammo will be used for Floating Objects

    2. If EndOfLifeSound is defined it will use the defined sound

    3. Otherwise, WepSmallMissileExpl for missile ammo types, and ImpMetalMetalCat0 for projectile types

  • MyEntityCapacitorComponent will force the weapon to have ShotsInBurst = 1 (fire one before reloading) (although iirc this is vanilla behavior)

  • MyEntityCapacitorComponent reload times will be rounded up to the nearest rate of fire number (ie. 60s (1), 30s (2), 20s (3), 15s (4), 12s (5), etc), and will override any defined ReloadTime/ROF in your Weapon Definition

  • If an InventoryComponent is not defined for weapons then the CubeBlock's InventoryMaxVolume will be used

  • For weapon definitions, using MissileAmmoData with projectile-type subtypes and vice versa will error

  • Projectile-type ammos will keep their maximum of one block hit for their BaseDamage

  • Explosions work significantly differently:

    • Explosion damage is dealt to ALL blocks within the radius, regardless of whether they are obstructed or not!
    • Explosion radius is multiplied by 1.25x (actually vanilla explosion behavior, its taken into account here)
    • Explosion damage lacks vanilla shrapnel
    • Explosion damage linearly decays out to radius instead of whatever keen was doing
    • Explosion damage only applies to the grid hit directly by the projectile. Any explosion where the projectile did not directly hit a grid will do no damage.

Clone this wiki locally