- The list ids command is now paginated
- Add several bindings for noises
- Add some additional helper functions for TFC's
Noise2DandNoise3Dclasses - Add noise inspection commands
- Fix
kubejs_tfc:wrappedchunk generators crashing when trying to find a spawn position - Describing a knapping type via command will now include the texture(s) used by the knapping screen
- Add support for Artisanal recipe types and ISMs
- Deprecate
#notAxisAligned()in ground cover builders as it created invalid block state files - Custom fallen leaves are now included in the
tfc:fallen_leavesblock and item tags by default, making them able to snow pile and turn into hummus by default - Custom (fallen) leaves can now be removed from automatic tinting by calling
#noDynamicTinting()on their builders - Tag ingredients printed via the describe command can now be clicked to use the
/forge tagscommand for that tag - Add TFC-specific recipe filters
- Add metal map in misc sub-binding
- Custom jar items now have the
tfc:jarstag by default - Add
#withoutCraftingRemainder()to the jar item builder - Properly implement input & output replacement for TFC recipe components & delegate recipe types
- Add
LayeredAreaconstructors to the misc sub-binding - Allow access to the chunk generator's
Settingsobject and creation ofRandomSources in the chunk data provider event - [Wiki] Commands now have their own page
- Add
#hasPostProcessand#emissiveRenderingmethods to extended properties - Add fissure, forest, forest entry, overlay tree, random tree, stacked tree, and krummholz worldgen builders
- Add direct wrapper for TFC's
ItemStackProvider - Fix double crops not having yield multipliers in their loot tables
- Add convenience method for setting the dead model of torches
- Add TFC sapling & leaf block builders
- Rename several methods in crop block builders to prevent Rhino throwing a fit when used
#productItem(ResourceLocation)->#existingProductItem(ResourceLocation)#model(number,Consumer)->#setModel(number,Consumer)#model(Consumer)->#setModel(Consumer)#texture(number,String)->#textureAt(number,String)#texture(number,String,String)->#textureAt(number,String,String)
- Allow
RecipeJS#getOriginalRecipeIngredients()to work with TFC recipe types - Add ability to change custom crop growth and expiry rates
- Add
alwaysandnevershortcuts for extended property settings that takeStatePredicates - Add tree solver command for modpack makers to easily make tree structures with proper states
- Add event for registering ISM -> json converters. All TFC, Firmalife, and TFCCC ISM types should be handled by default
- Add the ability to retrieve
NormalNoises during the chunk data provider creation event - Adds sealable inventory attachment which applies a food trait to items within it
- "Fix" proto chunks with no
ChunkDatacausing issues when promoted to level chunks with custom chunk data providers - Add custom surface rule source that uses the
RockSettingsat a given position - Fix custom spreading and double crops not respecting custom textures set in scripts
- This involved some reworks for all crop resource gens, the only noticeable effect should all stages looking for the same texture instead of unique ones, by default
- Fix supports having broken connecting models by default
- Fix mammals being unable to define their configs
- Add some flexibility to custom waterwheel texture paths
- Add validation to spike and loose blocks of custom defined
RockSettings - Fix noise settings of wrapped chunk generators not being used in production environments
- Add commands to print TFC's level settings and chunk data
- Add setting (default enabled) to deduplicate TFC datapack validation errors that are inserted into the KubeJS console
- Add chunk generator type
kubejs_tfc:wrappedwhich enables adding chunk data to levels without proper TFC-like level generators - New event for creating chunk data, depends on above chunk generator type
- De-hardcode dead crop model generation
- Add
tfc:torchblock builder type - Add
tfc:heatblock entity attachment type - Add
tfc:calendarblock entity attachment type - Deprecated:
#dripsintfc:thin_spikeblock type, same functionality handled by nullable parameter of#dripParticle#hasBubbles&#hasSteamintfc:springfluid type, same functionality handled by nullable parameter of#bubbleParticle&#steamParticle#allModelsin berry bushes, superseded by#models
- Remove deprecated methods in custom climate model event
- Remove old, non-functional chunk-data creation mechanism for custom climate models that was added in 1.2.6
- Add support for Kube's ingredient and result modifiers to TFC's advanced crafting recipes
- Fix drinkable description command printing the first effect in place of all-but-the-last effect
- Fix being unable to modify the cane block of spreading bushes
- Add the ability to properly modify the model generation of multi-model blocks (aqueducts, grass, gearboxes, etc.)
- Add TFC Log block builder
- Enable custom climate models to set chunk data for levels without TFC-like generation
- Fix
#simpleBlockStatein the worldgen data event incorrectly serializing propertyless block states
- Fix faulty assumption that climate models will only be added to TFC-like worlds
- Slight rework to how custom climate models are created
- 'Advanced' climate model functionality has been mered into the regular custom model
- Along with this, there is now only a single
.registermethod in the event, the previous registration methods are now deprecated
- Along with this, there is now only a single
- TFC climate default accessors have been moved from the event to the model builder callback
- The wind vector callback now provides a
LevelandBlockPosinstead of aBlockContainerJS - Custom noises are now created differently:
- First,
.newNoiseis called with a callback where the noise can be modified, this returns an index - This index can be used in
.noiseto get the noise within calculation callbacks
- First,
- 'Advanced' climate model functionality has been mered into the regular custom model
- Spreading bush blocks are now tagged with
tfc:any_spreading_bushby default, fixing max height being ignored and cane blocks breaking - Add methods for setting the model and textures of bush blocks
- Cane block models are now named
<parent_id>_side_<lifecycle>_<stage>to match TFC's model naming scheme, previously they were named<parent_id>_cane_side_<lifecycle>_<stage> - Fix the use of
productItemwith a pre-existing item not working as it should - Add
/kubejs_tfc searchcommand, enabling pack makers to determine which data entries are applied to an item/block/fluid
- Fix FirmaLife cheese wheel block builders sharing inside textures
- Fix potential crashes & inconsistencies related to custom entity type's hand & armor items (Thanks Liopyu!)
- Fix custom path navigations not working for custom entity types, update EntityJS version in-dev (Thanks Liopyu!)
- Add the ability to create custom glass operations
- Fix custom horizontal support block loot tables
- Add
TICKS_IN_HOUR,HOURS_IN_DAY,TICKS_IN_DAY,MONTHS_IN_YEAR, andTICKS_IN_MINUTEfields to calendar bindings - Remove deprecated methods in fauna registration, ISM, rock settings, and worldgen data events
- Add independent
getPos()method to events where it makes sense to access
- Add
tfc:jugandtfc:glass_bottleitem types, similar to thetfc:fluid_containeritem type, but can be drunken from - De-hardcode most non-crop resource generation
- Add
/kubejs_tfc list_idsand/kubejs_tfc describecommands which can be used to print info about some of TFC's data types
- Add Beneath nether fertilizer and lost page builders to the
TFCEvents.dataevent if it is installed - Register the previously missing dispenser behaviors for custom
tfc:fluid_containeritems - Fix the
#withPreExistingmethod not working as intended in custom ground cover blocks - Yet more custom crop fixes (hopefully for the last time)
- Fix custom fauna registrations causing certain mods to crash because they do not use Forge's event
- Changes to
TFCEvents.registerFaunas- Deprecate
.register, identical function provided by.replace - Add
.replace,.and, and.ormethods, these perform the operation their name implies on any existing spawn placements with the fauna based on created through it- Have the exact same args as the now-deprecated
.registermethod - Also have a version with a nullable string arg added after the entity type, this is suffixed to the registered fauna's id with a
/
- Have the exact same args as the now-deprecated
- Deprecate
- Fix not being able to define portions in the meal ISP modifier
- Fix custom crops having an empty loot table by default
- Fix custom lamps not retaining their fluid when broken
- Register custom blocks with block entities to TFC's own block entities instead of creating a duplicate block entity type
- Custom grass, farmland, and path blocks now use their parent dirt block's texture as their base by default
- Add an event for modifying default worldgen values, including the world's rock layers
- Change
TFCEvents.rockSettings's method fromdefineLayertodefineRockto match terminology used here
- Change
- Add axle block builder, which has methods for creating corresponding windmills, water wheels, gear boxes, clutches, and bladed axles
- Add encased axle block builder
- Add extremely basic EntityJS compat
- Has
mammal,oviparous,wooly_animal, anddairy_animaltypes currently
- Has
- Add event for registering a fauna definition to any entity type in the game
- Add methods for getting the fuel, drinkable, fertilizer, lamp fuel, pannable, and sluicable definitions to the misc sub-binding
- Update to TFC 3.2.6 and FirmaLife 2.1.6
- Add recipe handlers for new FL recipe types
- Allow custom windmill blades to specify the texture they use
- Non-wild crops now no longer have an item by default
- Now use Kube's
dev.propertiesfile instead of a configdebugMode->debugInfo(default property)- Add
tfc/insertSelfTestsIntoConsoleproperty that will put TFC's self tests into the Kube console if enabled (defaults to true)
- Add anvil block builder
- Groundcover block builders can now use preexisting items as their item similar to TFC's sticks
- Custom farmland and connected grass blocks now have some of TFC's functional tags by default
- Added event for registering custom 'interactions', see the wiki page for
TFCEvents.registerInteractions - Fully remove legacy container limiting system/event
- Add more methods in the misc sub-binding
- Update to TFC 3.2.3
Fix TFC.misc.rock and TFC.misc.rock maps being empty if called too soon
- Add
tfc:inventoryBE attachment, identical to kube's default inventory attachment but allows for filtering allowed items by TFC size & weight - Fix the register representatives event, now takes a
Block[]instead of aList<ResourceLocation> - Fix the
replacementMapparam in the soil disc worldgen data event's JSDoc - The
TFC.misc.woodobject is now aMap<String, NamedRegistryWood>, identical to before but the returned objects now have agetMod()method which returns the mod they originate from - Fix events that should have
cancel()called in them - Add some methods to miscellaneous bindings
- Fix crop builders' seed items
- Fluid and block ingredient js builders can now take regex inputs
- Update to TFC 3.2.1
- Add custom support block and windmill blade item builders
- Add sewing recipe support
- Update to TFC version 3.1.9
- Update to KubeJS version
2001.6.4-build.121+, fix collapse, landslide, and chisel recipes being broken with said kube versions - Add misc sub-binding
- Has many things! Check the wiki
- Events for custom birthdays, item stack modifiers, and adding prospecting representative blocks
- Add item builders
- TFC fishing rod
- Precision Prospecting's item types
- Jars
- Glassworking items
- FirmaLife's watering can
- Add block builders
- Lamp
- FirmaLife's cheese wheel
- Stationary berry bushes
- Spreading berry bushes
- Dirt blocks which will also create a grass block and optionally a path, farmland, and rooted dirt variant
- Crops
- Wild
- Spreading
- Double
- Default
- Flooded
- Pickable
- Rework container limiting functionality
- Fix type description for isp components
TFC.ispcan now be used in place ofTFC.itemStackProviderto access item stack provider bindings- Add methods for FirmaLife's isp modifiers to
ItemStackProviderJSif FL is present - Add methods to add custom molds to TFC Casting With Channels' mold table if TFCCC is present
- Add recipe handlers for FirmaLife and ArborFirmaCraft if they are present
- Update custom javelin models
- Add support for more feature types in the worldgen data event
- Ship method param names for ProbeJS hints
- Update to TFC 3.1.3-beta
- Remove config option to disable Kube's async recipes (it didn't seem to work anyway)
- Rework how custom food traits are made
- the
tfc:raw_rockblock builder should now not complain about missing mirrored models - Fix fertilizers adding
phosphorousinstead ofphosphorus - Add missing
use_durabilityandchanceparameters to heating recipes
- Fix an issue with delegate recipe types attempting to reference their id when generating their id
- Add douse fire event
- Rework how rock layers are defined
- The event has been renamed from
registerRockSettingsto justrockSettings - The
defineLayermethod now takes each block individually instead of altogether as a consumer defineLayernow returns theRockSettingsobject created
- The event has been renamed from
- Initial 1.20.1 port
- Requires TFC 3.1.2-beta and KubeJS 2001.6.4-build.95
- Port recipes to new schema system
- Delegate crafting recipe types no longer accept the same arguments as their base crafting type, now only support a single recipe argument
- Block, item, and fluid (stack) ingredients now use TFC's own native classes
- Rework bindings
- Going forward everything provided by this mod will be accessible through the
TFCobject or, for events, theTFCEventsobject
- Going forward everything provided by this mod will be accessible through the
- Added JSDoc annotations to everything, meaning ProbeJS should have explanations in its hints
- Split custom spring water healing and particle stuff into its own fluid builder type
- Add common config to automatically turn off async recipes at instance start to prevent problems with TFC's knapping and alloy recipe types
- Note: This does not edit the file and only applies once, reloading KubeJS' common config (i.e. with one of KubeJS' reload commands) will revert the instance back to the setting present in the file
- This problem should theoretically be resolved in a future TFC release, see my recent chats w/ Alc in the #development channel of TFC's discord
- Add
tfc:hammercustom item type - Minimize usage of consumers where possible
- Events
- Custom rock layers can still be created, but they cannot be added to the world, nor can existing ones be edited or removed anymore
- Custom climate models now have a callback for the wind vector, callbacks referencing TFC's default implementation can now be accessed
- Fully remove custom data and worldgen feature creation from Kube's datapack events
- Known (possible) problems/ untested things
- The autogenerated models for custom javelins may not entirely correct
- The wiki does not currently contain some information, but the pages for recipes and data (and worldgen soon hopefully) should be accurate
- I will work on it when I have the time
- Moss growing block types are not fully tested
- Custom fluid containers filled translation component has not been tested
- TFC's crafting recipe types do not have any way to set the
mirror,group, orconditionsparameters at this moment
- Fix data events data being added too late for metals and worldgen to be useful in-world
- Add
tfc.dataandtfc.worldgen.dataevents to replace a mixin intoDataPackEventJS - Deprecate the data builder methods currently present in the
server.datapack.*events, they are now available in the above mentioned events - Add the ability to register custom food traits
- Fix potential problems with certain client-possible events trying to call server code


