Dear Extraordinary Survivalists
v1.22.0, a stable release, can now be downloaded through the account manager.
Well, here we are again. Another update is ready for everyone's enjoyment. We recommend everyone to update to 1.22.0 now, unless you need to wait for mods to update. In this update we focused heavily on bringing you new and improved game mechanics. No extravagant update blog post blurb this time - I'm out of ideas and I just keep repeating myself every major update anyway lel. Suffice to say, we hope you enjoy this absolute unit of an update, encompassing over 700 individual features, tweaks and fixes! 
There is more content that we came close to finishing and for which we might make a smaller update before 1.23:
- Inventory Item/Block sounds
- More procedural dungeon content
- Mechanically powered bellows
- In-Barrel/Crate content visual rework
- Metal tier mechanical power (and once that is available, then wood tier elements turning too fast may ignite ... !)
Update trailer video
Screenshots and Gifs
Added cabinets and much improved storage system, allowing voxel-precision mixed item placing on cabinets, including books, clothing, chiseled figurines, all previously storable 1.21 items, and more! Cabinets are wood-typed and can be upgraded with cabinet doors.
![]()
![]()
Added fishing system with fish bait preferences and location-specific fish populations

Added mannequins to display your clothing
![]()
Added over 20 species of freshwater fish
Fish behavior rework. They now quickly escape melee weapons, and killed fish are collectible as a whole
Added Taxidermy for caught fish. Displayable on the antler mount block - now renamed to just "Wall mount"
Major forge rework. Updated model, added optional bellows, added metal tongs, fuel types matter now, and more

Tool head quenching and tempering system: Quench items to improve their power value or durability (but not both)
Added grinding wheel. Lets you sharpen tools for a critical hit bonus (WIP)
Added waterwheels
![]()
New type of rivulets: The Rapids. A comparison with the standard rivulet on the right

Mechanical power upgrades: Added large windmill, in-wall axles and spur gears
![]()
Added snow shovel mechanic

Fully rebuilt trader outposts
![]()
![]()
Added the first iteration of dynamic dungeons to Survival mode
Trader clutter: Trader outposts are further individualized to the type of trader inhabiting the place
Added iron and steel spears. Each spear now has its own spear head model
Boar rework: Full model overhaul. Added huge variant, warthogs and red river hogs.
Two new farm-able crops: Fennel and Licorice - specifically added for fishing
![]()
Eight new Mushrooms
![]()
Added side effects from eating certain mushrooms
Fully reworked berry bushes with rare traits and a more in-depth propagation system
Four new flowers: Bluebell, Ghost pipe, Daffodils and Mugwort
![]()
![]()
![]()
Refined tule plant textures
![]()
Added 6 new hair colors
Added many new clothing sets for the player
![]()
Papyrus chests now have their own model and texture
Sleek doors texture rework and they now have a glass window
Oil lamp model reworked and ground storable
Added 8 new variants of storage vessels
Added earthy orange ceramic color
Added travertine rock type and block variants
![]()
Added survival mode craftable clay tiles
Tweaked glass textures. Smaller frame and textured reflections
![]()
More new blocks: Aged acacia planks, aged bookshelf, fence and scroll rack (the previous aged ones are now "very aged"), leather decor, smaller lanterns and light mudbrick slabs
Can now attach chiseled figureheads to sailboats
Added crowbar for easier removal of wooden beams
![]()
Added crock labels for fruit jam
Placed backpacks can now be opened

Creative mode tool: Can now place decor (such as moss or dust) on most blocks
Reworked bighorn sheep model and added mouflon sheep
Creative mode tool: Added entity mover wand
Game updates (everything since 1.21)
-
Feature: Fishing System
-
Fish rework
- Added over 20 species of freshwater fish
- Fish now require large bodies of water to spawn
- Killed fish no longer sink to the bottom, requiring to be harvested. Instead they float up as a collectible item
- Fish now flee very quickly if melee attacked
- Some fish - arapaimas, pike, piranhas, and sheatfish - may attack players if cornered. Red-bellied piranhas are especially aggressive towards injured players
-
Fishing pole
- Craftable fishing pole from sticks or bamboo
- Casting with a fishing pole launches a bobber, which floats on the water and signals when a catch happened
- The fishing pole catches fish that you can physically see and sometimes also small, juvenile versions
- You can also (very) rarely catch 8 rare collectibles exclusive to the fishing system
-
Fish distribution system
- Fishing in the same location eventually depletes the fish in that area
- Different types of fish can be found at different locations, so you will need to travel to find every kind of fish
-
Fishing bait
- Without bait, catching a fish will take much, much longer
- Added Earth worms and Worm Grunter to catch earth worms. Worms frequency depends on rainfall and temperature and also depletes over time if over-harvested in a given location
- Can now cook stink baits from fennel and licorice plus meats and dough
-
Fish collecting
- Dead fish can be preserved (taxidermy) and placed on mounts for display. Added zinc sulfate and crushed sphalerite, which is required for the taxidermy process
-
Fish rework
-
Feature: Forge rework
- Added fancier Forge model
- Tongs now have durability. 1 durability point is subtracted per each item picked up
- Added metal tongs, which provide 10x to 100x the durability of wooden tongs
- Added bellows. Reaching higher temperatures in your forge now requires a bellows
- Forge fuel types. Fuel quality now determines heating temperatures and duration
- Can now also heat up tool heads in the forge
- Creatures standing on lit forges will now get damaged
- Glowing hot ingots can ignite unlit coal in the forge
-
Feature: Quenching and Tempering system
- You can now improve their power or durability of tool heads by quenching them, but at the risk of potentially destroying the tool instead
- The chance of destruction can be reduced by tempering the tool, but with diminishing returns each time you temper
- Quenching can be done in barrels of water or pools
- Throwing hot items onto lake ice will cool them down and may melt the ice
- Covering the tool heads with clay before the quench increases durability, if uncovered increases the power value
-
Feature: Tool buffing system with the grinding wheel
- Added grinding wheel to sharpen bladed weapons
- A sharpened weapon adds a critical hit chance, at the cost of durability. A critical hit is +100% damage
-
New Sound Tracks
-
Added "Latvia" sound track, plays at Latvian latitudes
- Added 4 village exclusive tracks, one per season
-
Added "Latvia" sound track, plays at Latvian latitudes
- Feature: A first, proof-of-concept fully dynamic dungeon now spawns in Survival mode. They appear far apart from each other, roughly every 1500 blocks
- Feature: Fully reworked trader models. Added climate specific clothing for traders
- Feature: Added many new clothing sets to be found, traded or crafted.
-
Feature: Fully reworked berry bushes. Pre-1.22 berry bushes are now legacy blocks: they will no longer be available in the Creative inventory, but any in existing worlds are still functional blocks in-game
- Fully reworked models. Now has a barren model in winter
- Can only be propagated by taking a cutting with a knife which when planted takes 4 to 8 months to mature into a new bush
- Berry bushes that have been propageted and are fully grown now require fertilization or they will stop bearing fruit. Berry bush nutrient use tapers off by 15% per year (resulting in about 5% use after 20 years). Some bone meal each year should be enough to give you a decent harvest
- 8 rare traits have been added. 4 positive, 4 negative, each having a chance to appear on any berry bush
- Flowering/Ripening behavior still mostly similar to the old system
- Feature: Added 'ruined' torch holders. They will hold torches, but if broken will not drop themselves
- Feature: Can now mount shields on wall mounts
- Feature: Hematite and Limonite nuggets can now be used for cave art and writing, in colors 'red ochre' and 'yellow ochre' respectively
- Feature: Added footstep sounds to the wolf and the bear
-
Feature: Chisel system improvements
- Chiseled blocks can now be placed on sailboats as figureheads
- Tweak: Blocks with the pillar behavior now display their orientation in the chisel tool mode material selector
- Tweak: Can now also chisel block combine in the chisel tool mode, not only in the crafting grid
- Fixed: Certain chiseled blocks placed wrong shading onto ground beneath - seen with new trader huts
- Fixed: A broken chisel sometimes returning the the players inventory with 1 or 2 durability left
-
Feature: New collectibles and craftables
- Feature: Added craftable clay tiles in all standard clay colors, which can further be turned into blocks and slabs
- Feature: Added new small lantern
- Feature: Added iron and steel spears, but de-buffed the lower tier spears
- Feature: Added travertine stone, which can be made into ashlar and tiles
- Feature: Raccoons and foxes now drop species-specific hides, which can be made into fur hats
- Feature: Added oils (flax/linseed, olive, fat). Raw fat now can spoil, and can be cooked into rendered fat, which does not spoil. Liquid rendered fat will solidify after several hours. The solid item form of rendered fat (for use in grid recipes) is obtained by dumping the solidified fat from the container it's in, onto the ground.
- Feature: Steel anvils can now be crafted in survival
- Feature: Added pot pies - this allows you to create mixed meat & vegetable pies
- Tweak: Added wood-typed ladders
- Tweak: Added light mudbrick slabs. Allow low fertility soil in mudbrick slab recipes
- Tweak: Added "earthy orange" ceramic color for pit-kilned red clay items
- Feature: Added 4 types of survival mode craftable mannequins (full body, leg, head, torso) which allow you to display your clothing
-
Feature: New flora
- Added 2 new farmable crops - fennel and licorice. Both will spawn in the wilderness, and can be used to make stinkbait for fishing. Fennel is also an edible vegetable, but licorice is not
- Added four new flowers! Bluebell, mugwort, ghost pipe and daffodils
- Added 8 new rare mushrooms. Most with visual "side effects" when eaten. (Honey mushroom, Blue Meanie, Fool's Conecap, Gold Cap, Liberty Cap, Sickener, Wavy Cap, Laughing Jim)
-
Tweak: Block overhauls
- Glass texture is now redone: full blocks have a smaller frame and all glass blocks now have textured glass reflections
- Ceramic oil lamps have a new model, and are no longer made from bowls. They can also now be hung from the ceiling
-
Feature: Mechanical power updates
- Feature: Added large windmill
- Feature: Added in-wall mechanical power axles
- Feature: Added waterwheel (WIP). Needs to be placed on rapids (fast-moving water)
- Tweak: Nerf! Windmills now cause turbulence within a radius 1.5 times the sail diameter (meaning 15 blocks distance required between two maxed windmills)
- Tweak: Creative rotor is now roughly 7x more powerful, uses a similar torque display as the windmill and allows independent adjustment of speed
- Tweak: Helve hammer no longer has exponential power cost as speed goes up [it caused mech. networks to oscillate heavily]
-
Tweak: Starting from 1.22.0 stable (so not yet!) mechanical power blocks will ignite if they rotate too fast. They will smoke for a while before igniting, for an early warning - Fixed: Axle stands on north-south oriented axles that are attached under a block were incorrectly rotated
- Feature: Added 4 small optional side quests offered by the villagers
- Feature: Added 6 new seraph hair colors the player can select from in the character creation screen
-
Feature: Hacked locust improvements
- Feature: Tuning spear now has an additional tool mode allowing you to call back your tamed locust
- Feature: Can now heal and revive hacked locust with metal parts
- Follows the owner a little quicker
- Fixed: Hacked locust jumping after player as if attempting to attack them
-
Quality-Of-Life improvements
- Feature: Held bags that are placed on the ground can now be interacted with
- Feature: Added crowbar, which lets you remove the most recently added support beam from a block
- Feature: You can now attach crocks to the elk's left and right front storage locations (they will not, however, have labels shown while attached)
- Feature: When hovering over or grabbing a wearable item in your inventory, the proper slot for that item in your character inventory will be highlighted
- Tweak: Allow bulk placement of metal bits in ground storage
- Tweak: Flower pots can be placed on shelves
- Tweak: Can now slice pies using knife in crafting grid
- Tweak: Dirty pots can now be stored on the elk, like regular cooking pots
- Tweak: In the map, the "Add Waypoint" dialog now remembers previous Waypoint names and suggests them. Suggested names can now be deleted with a single backspace stroke.
- Tweak: The red in-game error texts now have a black border around them to make them easier to read
- Tweak: Bowls show satiety of remaining food portion only when the bowl has less than a full portion of a meal in it
- Tweak: When drinking out of a bowl, you must split the stack to drink, like all other bowl actions
- Tweak: Can now use a shovel to dig up cattail roots, faster than using a knife
- Tweak: Exiting the game via Alt+F4 (or [X] in the game window) now fully saves your world
- Tweak: No more 1-second delay on picking up mined items
- Tweak: Collapsed chests in ruins now fall apart into chest rubble once they are empty
- Tweak: More intense low health / low satiety alarm visuals
- Tweak: Collectible tool tip "Attack power: -{0} hp" is now "Attack power: {0} damage"
- Tweak: The Controls settings tab now correctly shows again if a keybind conflicts with another keybind
- Tweak: When using 1-click mod install, the game autofocuses now
- Tweak: Mod manager improvements: mods are now downloaded in parallel; mod release retractions are now respected
- Tweak: Block remapping on game version updates now applied automatically on first run of new game version. The dialog "This save game was created with an older version of the game ... a remapping and reload is required" should now be a thing of the past [and /fixmapping applyall should now never be necessary]
- Fixed: You can no longer waste a poultice attempting to heal a fully dead elk
- Fixed: Multiple issues with selection boxes of support beams
- Fixed: Player viewing direction jumping after exiting an inventory
- Fixed: 9 year old bug in the cinematic camera system where sections of the path were running at different velocities (credit: ImNuts42)
- Fixed: Multi drop down select not remembered the checked boxes (e.g. in the meta spawner ui). Also fixed missing translation entries in the meta spawner ui creature dropdown
- Fixed: Not possible to reinforce or lock labeled chests
-
New In-World Interaction capabilities
- Feature: Oil lamps now use the ground storage system - in other words one can place them in quadrants, and mixed with other items
- Feature: Can now remove the head of a ground placed bear pelt
- Feature: Sieves, and saddle blankets can fit onto shelves
- Feature: Liquid containers on shelves can be interacted with directly
-
Feature: There is now a new ground processing system that allows for simple crafting processes of ground placed items
- Can now scrape ground placed soaked hides
- Can carve bone flutes from ground placed bones
- Can saw long bowstave into recurve bowstave on the ground
- Can shear parchment out of scraped small hide on the ground
- Can smash ore chunks on the ground using a hammer
- Tweak: Rusty gears now have a pile model that holds up to 64 gears. The old-style piles of gears will still be found in ruins, but player-placed piles will be more orderly, and larger capacity
- Tweak: Tool heads can now be placed on the ground
- Tweak: Weapons can now be placed on antler mounts (but not tools)
- Tweak: Stick, cattail, and papyrus piles now hold 2-3x more items.
- Tweak: A pile of thatch on the ground now holds up to 18 items
-
Tweak: Papyrus tops pile transfer quantity raised to 3
-
Gameplay balance affecting changes
- Tweak: Can now also sell trapped animals in the auction house, increased auction duration 60%
- Tweak: Grain crops now have half the yield in grain and fiber, but spawn in patches twice as large during world generation. The net effect to be requiring larger fields for equivalent grain production compared to previous versions
- Tweak: Iron and Steel spears added. Other spears nerfed to make room for them
- Tweak: Glacier ice and packed glacier ice that have been collected and placed again will begin to melt, if the local temperature is above freezing
- Tweak: Improvised armor now also requires rope
- Tweak: Armor stand now has more intuitive attaching of items
- Tweak: Can no longer grid craft stuff from hot items
- Tweak: Hunter backpack recipe can now produce two backpacks from one huge pelt. Using a large pelt returns a small pelt, in addition to the backpack. Using a huge pelt for fur gloves returns 1 small pelt.
- Tweak: Treasure Hunter trader offers only a 25% discount on subsequent elk purchases in exchange for another eidolon vessel
- Tweak: Added a few usable storage blocks to the Resonance Archives entrance
- Tweak: Reduced spawn radius of mobs in the Devastation Area, so players are more likely to encounter them
- Tweak: Removed grid crafting crock sealing recipe in favor of other (in-world) methods
- Tweak: Horsetail no longer qualifies as bee or butterfly feed
- Tweak: Reviving a player no longer restores satiety to 50%, now leaves it unchanged
- Tweak: Balanced with the addition of small lanterns, the original large lantern now costs twice the glass and metal
- Tweak: Upped survival time of trapped animals from 1 day to 2 days
-
Tweak: Restored custom spawn conditions lost in the 1.18 update
- Harsh winters setting now again disables livestock spawn (deer, sheep, boars and chickens). It didn't
- Wolves and Bears now again are on a grace timer in new worlds. 4 hours for wolves, 1 day for bears.
- Tweak: Moved arctic white and silvery blue butterfly into warmer spawn zones
- Fixed: Crop growth was 10% faster and consumed 10% less nutrients than intended
- Fixed: Salt lake beds were not generating during worldgen (in very dry and warm areas)
- Fixed: Farmland crops consumed slightly less soil nutrients than intended
- Fixed: With stacks of items in the firepit, finishing cooking one item no longer resets the temperature of the input stack, but a stack's warm-up time is now longer for larger stack sizes
- Fixed: Material transmutation/dupe glitch with chiseled blocks (technical info: Output chiseled blocks no longer have multiple of the same materials plus only consume every unique input material once)
- Fixed: Peanuts did not give a satiety bonus in meals
- Fixed: Cassava would dry out even while in a meal
- Fixed: Placing an iron bloom on an anvil caused its temperature to drop immediately
- Fixed: Resonance Archives gasifier would burn fuel too quickly
- Fixed: Baking an item in an oven would reset the spoilage timer
- Fixed: Cheese wheel would reset freshness each time a slice was cut off
- Fixed: Lava that turned water into basalt/obsidian did not delete the water
- Fixed: Very broken behavior when lava flowed into a water source block (turned water source block into basalt in large strange patterns)
-
Fixed: Luxury trader was still selling gold omok pieces
-
Creature behavior changes
- Tweak: In closed spaces, Bowtorns now evade the player more intelligently - and if they can't they will begin firing on you
- Tweak: Sun bears will now break skeps and steal berries off bushes
- Tweak: Slightly slower creature look around speeds
- Tweak: Saltwater fish spawning now more accurately matches where the species would exist in real life
- Tweak: Panda and brown bamboo spawns changed to overlap, so pandas appear with bamboo more often. Panda range has moved south, and brown bamboo range has moved north
- Tweak: Brown bears will drop a little more fat
- Fixed: In snow walkspeed debuff applied twice to all locusts
- Fixed: Less wonky locust stepping on small steps. Will now use the stepping behavior instead of going vertical climb on small height differences
- Fixed: Animals would never eat planted crops
- Fixed: 23 types of butterflies never spawned
- Fixed: Bighorn sheep now live in dryer regions rather than wetter ones
- Fixed: Inconsistencies in raccoon climate conditions
-
Fixed: Missing minimum temperature for tang fish spawns
-
Creative Mode additions
- Feature: Can now place decor layers, such as moss, on almost all blocks (not only full blocks): for example, storage vessel or chest (but placement on plants is not possible)
- Feature: Entity mover tool. Lets you pick up and move around creatures
- Feature: Added leather decor overlay block - "sheet of stitched leather"
- Feature: Added aged acacia plank blocks
- Feature: Added "veryaged" variants of wood fence, bookshelf, and scroll rack.
- Tweak: Add chiselable full block stone path
-
Tweak: Added ruined metal door variants
-
Tweak: Thrown stone improvements
- Bricks, stonebrick, refractory bricks are now also throwable
- Fixed: thrown stones could still deal damage even when PvP was disabled or the attackplayers/attackcreatures permission was revoked.
- Fixed: thrown stones would make no thud sound if they landed close to the throwing player
-
Fixed: when skipping stones, splash particles would not spawn and some stones could get forever stuck floating above water
-
Handbook improvements
- Feature: Handbook search is more flexible with better results
- Feature: Handbook shows which animal eats which food, on food pages
- Feature: Handbook shows trappable animals on trap pages
- Feature: Show what plants can go in which flowerpots and planters in the handbook
- Tweak: Handbook now shows items that can be created at various workstation blocks, like fruit press or anvil
- Tweak: Show the days or years required for an item to perish in the handbook, rather than only the hours
- Tweak: Animal traps and troughs included in storable information in handbook
- Tweak: Omok table and pieces included in storable information in handbook
- Tweak: Show destroyed animal traps in the handbook
- Tweak: Handbook display of smithing recipes improved
- Tweak: Handbook display of metal molding improved
- Tweak: Better spacing for beehive kiln results in the handbook
- Tweak: Quern shows grinding outputs on handbook page
- Tweak: Quern handbook entry now mentions that the quern can be powered by hand, as well as by machinery.
- Tweak: Searching the Command Handbook, search results in long pages go to the (first) position of the search text
- Tweak: In the Handbook, for materials created by grinding, show the quern in "Created by" section
- Tweak: Display what clothing can fit on what mannequins in the handbook
- Tweak: Remove handbook grouping from clothing
- Fixed: Handbook wattle and daub entry incorrectly stated the initial daub application as 10 items (it is actually 6).
- Fixed: Handbook will properly show the grid crafting recipes on the appropriate nugget pages instead of all on the copper nugget page
-
Visual fine tuning
- Feature: Added fruit labels for jam on crocks
- Tweak: Improved OIT rendering system which should fix oddities when half transparent geometry is on top of others (e.g. clouds behind windows)
- Tweak: Scene shader tweak - prevent complete whiteness on overly bright surfaces
- Tweak: Tule model and texture reworked
- Tweak: Spears have new spear head models, each metal with a unique design.
- Tweak: Sleek wooden doors now have a glass plane and have a smoother and more bespoke texture
- Tweak: Lowered the threshold for villagers to get a frost overlay, and made the face never freeze over
- Tweak: Cow parsley, heather, western gorse and orange mallow flowers now uses the old, more simplified model again
- Tweak: Anvils now use holdbothhandslarge idle animation, rather than holdbothhands.
- Tweak: Aged and very aged wood textures should now be more consistent across all blocks and items. Renamed "aged wood" to "aged oak"
- Tweak: Nicer first person hand transform for slabs
- Tweak: Papyrus chest now has separate shape from reed chest
- Tweak: Tool heads now have sockets where appropriate
- Tweak: Iron and steel pickaxes have revised model
- Tweak: Ratlines now have knots at the intersections
- Tweak: Wolf holds its tail straighter and lower
- Tweak: Bear textures revised, and each bear now has its own model, to avoid drastic json scaling
- Tweak: Cooking pot model now has rope cradle when attached to elk
- Tweak: Seraph rendered into GUIs are now animated
- Tweak: Saltpeter and other powders and crushed materials scaled up to be more visible when dropped on the ground
- Tweak: Redid Brass Ruby Brooch model to more match original vision
- Tweak: Stone path stairs and slabs now extend 1 voxel 'below ground' to cover the gap that can be left by regular path blocks. Stone paths now use wildcards to randomize texture, rather than alternates.
- Tweak: Updated existing leather colors to be less bright. Added running stitch variant for all leathers.
- Tweak: Messy12 ground storage changed to be spaced more evenly
- Tweak: Better line up text lines and checkboxes/sliders in the settings interface tab
- Tweak: Weather system: Don't spawn snow storm particles when above 5°C
- Tweak: Fixed items way to strongly wind affected when in hands
- Fixed: Long standing visual bug where harvesting reeds sometimes overextended the players arm
- Fixed: Pie dough sides were unusually dark when placed besides blocks
- Fixed: Make particles use proper multiblock collision
- Fixed Fortune Teller Hip Scarf model z-fighting with gambeson
- Fixed: Some block breaking overlays were incorrectly applied
- Fixed z-fighting on sloped (main) roof segments
- Fixed: Seraphs shoulders clipping through in "hold both hands" pose
- Fixed: Camera jitters and ridden elk occasionally stopping when mods modified too much player data
- Fixed: Animation jerkiness on traders
- Fixed: One line break too much in the block info HUD in some cases
- Fixed: Stretched UVs on axle and aged armorstand
- Fixed: Some tool heads had bad origins and so would do crazy flips when tossed
- Fixed: Flowing lava blocks now start their particles at the correct height
- Fixed: Some texts off vertically by 1 pixel
- Fixed: Incorrect feathers texture on arrows
- Fixed: Player yaw jitter when closing chat window while in overhead camera mode
- Fixed: Short rotation flicker right after placing certain blocks (with rotatable block entities)
- Fixed: Rare flashes of X-ray vision when breaking blocks next to a chunk boundary
- Fixed: Seraph from the character dialog clipping through creative inventory
- Fixed: Holding a pulverizer frame would obstruct player view significantly
- Fixed: 'Plain glasses' lenses were not on transparent renderpass, and so had X-ray vision
- Fixed: Baskettrap trigger animation was rotated differently than the base block
- Fixed: Baskettrap or Crate trap animation broken when both traps were placed
-
Tweak: Sound additions
- Lots of internal preparatory work for foot steps sounds
- Charlemagne entity has a new sound set
- Added more Wolf sounds for variation
- Added 2 dive attack sounds to the second boss
- Seraph hurt sounds are now shorter when the damage is low or when it's from frost or poisoning
-
Tweak: Performance tweaks
- Changing the graphics quality preset is now 4 times faster (1s lag instead of 4s lag)
- Improve loading times with many mods installed (json patching times 47s => 3.6s). Contribution by tehtelev
- Improve loading times with many mods installed (recipe loading times 21s => 8s). Contribution by tehtelev
- Improve loading times of certain handbook pages from 10-14 seconds to instant when mods "A Culinary Artillery" and "Expanded Foods" are installed
- Further 400k objects removed from permanent heap (mainly duplicate strings)
-
Reduced client-side lag spikes caused by various commonly used blocks
- Ground storage, toolrack, shelves and similar utility blocks [Technical info: BEContainerDisplay types - Display Case, Ground Storage, Toolrack, etc... now generate meshes off the main thread]
- Flowerpots and planters [Technical info: only tesselate one plant shape max. per container, defer pot tesselation and transforms to tesselation thread]
- Small increase in loading time for doors and toolracks
- Further reductions in Matrixf and vector object creation
- Further reductions in Vec2f and Vec3f object creation in many places
- Explosion shell vectors calc now uses FastVec3f not Vec3f
- Further low level matrix improvements in animations; reduce memory pressure on client
- Many low level matrix operations moved from heap to stack
- Re-use some matrices and vectors at low level
- Reduced heap memory pressure from selection box ray-tracing. With thanks to dedgrant
- Fixed memory leak when displaying skep or basket trap in inventory or handbook
- Fixed potential memory leak in forge
- RAM and heap saving, SnowAccum system now uses a value type [ServerMapChunk.SnowAccum is now a float[] not a ConcurrentDictionary]
- Particles - reduce RAM requirements and heap pressure
- General improvements to SQLiteDbConnectionv2, less heap pressure for multiplayer server
- Added LOD2 shapes and textures for all clutter bookshelves
- Very minor, but system-wide rendering optimization [Technical info: Don't call EnableVertexAttribArray every render call, not necessary as per OpenGL spec]
- Faster recipe matching with reduced memory usage. Should fix lag spikes on the server and client when crafting or using the handbook
- Less CPU cost for unpacking chunks, creating packets etc - main benefits on large multiplayer servers
-
Tweak: In-game guidance tweaks
- Feature: Crocks, pots, and bowls with meals now show interaction help when ground placed
- Tweak: Lowered the itemstack hover info HUD a bit so that it does not cover up the stack size of the item in your mouse slot
- Fixed: Show only workable items in anvil interaction help
- Fixed: Interaction help for mortally wounded elk said "Revive player"
-
Tweak: Game Server tweaks
- Tweak: AntiAbuse system partially revived. Off by default, but when enabled in the serverconfig.json it will decline block interactions when they are too far away from the player
- Tweak: When a server has more than 50 players, join/leave and death messages no longer get printed to chat (configurable in servermagicnumbers.json field "PublicJoinLeaveDeathMessagesThreshold")
- Tweak: Join, Leave and Death messages now also sent to all player groups the player is part of
- Tweak: Allow the server heartbeat/register to master server also work in standby mode
- Tweak: Added more audit logging when trading and using the action house
- Tweak: Multiple Serverconfig StartupCommands would not work if there was a space in front of a command
- Fixed: "spawnRadius" not a circular spawn area and sometimes spawning player outside of the radius. Fixed a respawning player placed at a block edge. Mitigate spawning inside blocks.
- Fixed: Command /serverconfig entityspawning 0 did not disable entity spawning right away and vice versa did not enable it right away when it was disabled before
- Fixed: Possible server exception on player death
- Fixed: On a dedicated server when using a malformed welcome message it would disconnect/crash each client on login.
-
Tweak: Command Tweaks:
- Tweak: Most /wgen commands can now be called from console
- Tweak: Added /serverconfig blockTickChunkRange
- Tweak: Added worldgen command /wgen regenrange
- Tweak: Now /entity spawn command can optionally also specify the generation, eg. generation=3
- Tweak: New command /entity findnpc to count the villagers or find a specific one
- Tweak: New command /entity list to list the types of all loaded entities, and count them
- Tweak: Add alias /wcc for the worldconfigcreate command
- Tweak: Fixed typo in command /dev per-player-lootable-reset
- Tweak: add client ping to /stats and /list clients commands
- Tweak: Removed no longer working /wgen regenr and /wgen regenrc commands
- Tweak: Wireframes display command can now be abbreviated to .debug wf
- Fixed: /wgen regen did not reload the deposits files
- Fixed: When using /wgen regen the GeneratedStructures list could be restored only partially, the actual in-world structures/blocks should have be mostly unaffected by that
- Fixed: Command /land list would not output the correct center postions if a claim had multiple areas
- Fixed: .we command no longer working to open/close the world edit ui
- Fixed: GameTickListener debug command /debug tickhandlers dump dcentity not working
- Fixed: Command .chb expcmds did not make sure the ModConfig folder exists
-
Tweak: Ladder tweaks
- Wood ladders can connect as one ladder, crude and rope cannot connect to others
- Wood ladders can be sawed back into boards
- Ladders made entirely of sticks have their own model, separate from ladders made from planks
- Crude ladders cannot support themselves on the ground or the ceiling and require a wall for support
-
Tweak: Water tweaks
- Tweak: Rivulet riverbed carver. Somewhat more neatly integrates the rivulets into the world. (WIP, temporarily disabled in -pre.1)
- Tweak: Also spawn rivulets on mountain sides
- Tweak: Water now spreads faster
- Tweak: Flowing water shader tweaks
- Fixed: Flowing water with NE,SE,SW,NW directions was not visually flowing diagonally
- Tweak: Lightning flash visual tuning. Lights up the world from a greater distance and a bit more realistically
- Tweak: Players are now visible on the map up to 1000 blocks away or if in a shared group, by default
- Tweak: Player map markers will show the supporter color, like player names in chat
- Tweak: Held/dynamic light range now better corresponds to placed light range
- Tweak: Added a Creative mode pocket sun. Caution: Very hot!
- Tweak: Increase dynamic lights detection range from 60 to 120 blocks
- Tweak: Add a bit of extra brightness near a held/dynamic light source
- Tweak: Cleavers now have a non-functional 'head' item like most other tools, and must be combined with a stick to make the complete tool. Also revised the cleaver model to have 1:1 pixel scale (previously was 50% scale)
- Tweak: Tuned seraph idle animations
- Tweak: Can now add linings or change the color of glass for small lanterns in ground storage
- Tweak: Added new ground crafting sounds, for scraping soaked hides with knife, trimming small or medium scraped hides into parchment using shears, carving a bone into a flute, removing the head from a bear pelt, and sawing a raw longbow stave into a raw recurve stave using a saw
- Tweak: Copper roofing grid recipe yield doubled, except that tips are now individually made from a single copper plate
- Tweak: Breaking blocks adjacent to and below water flow, may now cause the water to flow into the newly made gap
- Tweak: The Devastation Tower elevator now prevents falling through when going down
- Tweak: Add non-climbable versions of clutter ladders, for use in cases like bunk beds where you don't want them interfering with the player's normal movement
- Tweak: Chain mail items have a revised smaller model, and are now placeable on the ground in the quad layout
- Tweak: Rendered fat recipe no longer dirties the pot
- Tweak: Pigs and sheep will no longer stand around idly such that they can easily be fenced in. They will now run away from the player, or attack the player if they get too close
- Tweak: Removed unused 'eidolon gearbox' item from the game
- Tweak: Firestarter can now be burned in a firepit
- Tweak: Allow candles to be removed from an existing bunch of candles without breaking it
- Tweak: Male goats in general will not use the very smallest horn models, better differentiating them from females
- Tweak: Copper shingle blocks now have a grid recipe. The shingle blocks blocktype json was moved from 'metal' folder to 'roofing' folder
- Tweak: Grid recipes which produce roofing half-blocks now produce two halves, rather than one
- Tweak: Add a bit of extra brightness near a held/dynamic light source
- Tweak: Added server config setting UpnpInfiniteLifetime (enable with /sc upnpinfinitelifetime on). Use this for infinite UPnP port mapping lifetime; otherwise the default 10-minute lifetime auto-renews mappings. Behavior may vary depending on the router.
- Tweak: Change Linux icon from xpm to png since xpm may not be supported on newer systems
- Tweak: "Antler mount" is renamed to "Wall mount".
- Tweak: Wall mount block info text name is now set to the placed item
- Tweak: Palisade walls and stakes now prevent animals from walking on them, like regular fences.
- Tweak: Ovens now no longer allows igniting of non-fuel, such as pies
- Tweak: Allow liquids to be chiseled only in creative mode
- Tweak: Removed fish carcass clutter block, because there is a dedicated fish carcass block
- Tweak: Debarked and tree trunk 'veryaged' and 'veryagedrotten' textures modified for consistency
- Fixed: Fixes npc dialogue link text cut off in some cases
- Fixed: Cassava that dried out in a meal due to a bug no longer has an incorrect name nor gives no nutrition
- Fixed: Oven would give incorrect error message when trying to add non-bakeable items
- Fixed: 2x1 and 1x2 paintings only half visible when there was a decor layer on the wall
- Fixed: Hunger rate applied twice by accident, causing a setting of 0.5x to be 0.25x and of 2x to be 4x
- Fixed: Unable to put empty bowl into barrel inventory slot
- Fixed: Scrolling in dropdowns near bottom of the screen shows all items properly
- Fixed: The grid recipe to force clay brick slabs into a certain orientation was missing
- Fixed: Pies with default full top crust style would not stack properly if cycled through crust types
- Fixed: Bear foot sliding, brown and polar bear chasing after tiny creatures (baby hares and chicken), and not attacking animals they chase
- Fixed: Entering and exiting the water while holding the sprint key would slow you to a walk even with the precise control scheme
- Fixed: Holding down the sprint key before starting to move would still start off with walking
- Fixed: Armor stands could only be placed at edges of blocks
- Fixed: Color accurate worldmap: Still used vintage colors until the map was opened
- Fixed: Clouds going black when using [x] Override default values from the world edit control panel
- Fixed: Traders and Villagers would execute the option after the "What did you got to trade?" which mostly was the "Whats your name?" option and so reveal their name at the same time as openting the trading menu
- Fixed: Empty triggered animal traps would not drop block if broken
- Fixed: Empty triggered animal trap would give back trap when picked up rather than just basket
- Fixed: Prevent the trader menu to be opened by multiple players, which can crash the game
- Fixed: Falling maple seeds did not fall with reduced gravity
- Fixed: Crash when Ctrl+scrolling up on the firepit input slot
- Fixed: Rotation of clayforming for watering cans matches output
- Fixed: On some occasions, traders walking away from player during conversations and standing still after conversations
- Fixed: Some ropes not properly loading from a savegame to client side. Explanation: We did not re-broadcast when a cloth system became active, we did not update the state on chunk loads although we check all chunks if they are loaded on each clothsystem
- Fixed: Some damage effects still applying on damage over time types of damage (e.g. instant huge red overlay when eating fly agaric)
- Fixed: Drinking more or less than 1L of wine all at once will properly vary how intoxicated you become
- Fixed: Dragging to place ingredients into cooking pot would not evenly distribute items
- Fixed: Mechanical power blocks, World Edit selection tool grow/shrink buttons and other parts of the game now work in other dimensions
- Fixed: Sub-decors (e.g. cave art) now preserved in World Edit move area, mirror area and repeat area operations
- Fixed: Removed downwards exponential acceleration of entities that use passive physics behavior
- Fixed: Fall damage inconsistency, added player stat "fallDamageThreshold"
- Fixed: On a brand new world, the client game calendar would be paused and/or slightly desynced from the server time for a minute, causing the sun to jump after 25 in-game minutes
- Fixed: After a client-side crash, the game kept running until the Crash Reporter window was closed
- Fixed: Removed uncraftable soaked bear pelts
- Fixed: Cutting snow covered grass with a knife did not yield dry grass
- Fixed: Missing horns on female goats, also they can fight back now
- Fixed: Items dropped by mechanically powered querns, pulverizers, or chutes could be launched very far when outside of the simulation range (128 blocks from the player)
- Fixed: "Wide lines have been deprecated" warnings on certain GPUs, eg. Intel UHD
- Fixed: Ladders would sometimes allow strange interactions between different types
- Fixed: After healing with an item, a second item in the same slot (from picking up) with a slow interaction process would immediately finish (#6719)
- Fixed: Logged error for carburizable properties in handbook
- Fixed: Many repeated logged OpenGL errors on Mac filling up the log file
- Fixed: When milking goats your inventory could get out of sync and remove buckets or causes getting kicked from the server.
- Fixed: Various water plants could have non-matching top and bottom section pieces
- Fixed: Stone path slabs did not show snowcover. Stone path blocks had hitboxes 1 voxel too tall
- Fixed: Crash when viewing corrupted rock-typed block
- Fixed: Another possible cause of ghost Players
- Fixed: Beams not placing correctly in free mouse mode or when client->server not in sync.
- Fixed: Some fruit trees would spawn as empty stumps during worldgen
- Fixed: Crash in the music system when flying fast
- Fixed: Wild fruit trees not fruiting in the first year
- Fixed: Honey would give the wrong satiety in a meal
- Fixed: Quenching/Tempering buffs not applying when they should and the item now shows its item state in the item info hud.
- Fixed: Tempering applied a buff instead of only reducing the break chance
- Fixed: Applying many buffs added many lines of text to the item info hud
- Fixed: The player would get full nutrition from drinking spoiling liquid
- Fixed: Properly stop animations when ground processing items
- Fixed: Animation would never end when breaking ore chunks in ground storage
- Fixed: Drifters had a missing face on their neck that would show on their back side, when dead.
- Fixed: Bronze rods had combined word localizations (i.e. Tinbronze, Bismuthbronze) which was not per standard
- Fixed: Grindstone grid recipe conflicted with polished stone recipe
- Fixed: Ruined metal doors had the latch on the wrong side, and their hitbox was thinner than the door.
- Fixed: Collapsed clutter scroll racks were not texture-swappable.
- Fixed: Ruined sabre had blade ground-stored transform, and so looked like it was half buried in the ground.
- Fixed: Bugnet durability wasn't consumed
- Fixed: Brass torchholder description didn't have useful info from aged torchholder description
- Fixed: /debug helddurability command not marking slot dirty
- Fixed: Armor breaks on zero durability
- Fixed: Female tamed elk hitboxes displayed raw lang keys instead of translated text
- Fixed: Empty chests playing incorrect sound when closed
- Fixed: Chiseling or rotating blocks located at a chunk edge, now correctly updates lighting on neighbors across the chunk edge
- Fixed: Harvested brown sedge tossed on the ground was nowhere near its actual hitbox
- Fixed: Some pigs had bad 'center' points in their model, resulting in mis-placed hitboxes
- Fixed: Flax fibers' held transform was WAY too small
- Fixed: Black coal was a pigment for sign writing, but could not do cave drawings
- Fixed: Tule root didn't say in description that it can be planted again
- Fixed: Luxury trader was selling two shields that were missing the wood attribute.
- Fixed: Placing a crock into ground storage would crash the game on some operating systems
- Fixed: Sheep no longer spawn in thick forests or shrubland
- Fixed: Rope couldn't be placed on ground without already existing ground storage
- Fixed: Some story locations (lazaret) caused additonal protected areas above ground after using /wgen regen at their position
- Fixed: Couldn't pick up empty armor stand
- Fixed: Devastation tower pitch black at night and other worldgenned light sources not emitting light
- Fixed: Bamboo stakes and shovel gui icons when moused over were not centered.
- Fixed: Long bowstave is invisible in ground storage when dry
- Fixed: "Toggle sprint" checkbox hover text was wrong in the game settings
- Fixed: Aged sailboat did not have a creative item to place it (and so did not show up in handbook)
- Fixed: Flax fibers were not centered in the gui
- Fixed: Hot items invisible in ground storage
- Fixed: Metal arrow fletching was solid black
- Fixed: Rare crash when chiseled block name is null
- Fixed: Drygrass item was not centered in it's selection box when laying on the ground
- Fixed: Mouflon and bighorn sheep horns had bad wall mount transforms. Mouflon horns were also missing localizations.
- Fixed: Water updates not consistently triggered if solid blocks (water-logged blocks) were in the same position
- Fixed: Clouds disappearing after sleeping in some cases
- Fixed: Dirty cooking pot had bad incorrect idle pose
- Fixed: Anomalously light texture section on adult male elk's neck fur
- Fixed: Scraping multiple soaked hides causes game crash #8479
- Fixed: Old traders were upgraded to the new traders, but naked and no face
- Fixed: When public server advertising is enabled that could send multiple duplicated requests to the masterserver. Issue since 1.22.0-pre.1
- Fixed: Some Nadiyan clothing was not using the correct textures.
- Fixed: Merchant hat and fur coat had some texture issues.
- Fixed: Snowcovered slabs not flush with adjacent blocks
- Fixed: Incorrect UV on Gearfoot Bowtorn legs
- Fixed: Various small issues with bear textures and model
- Fixed: Olives' on-ground transform was bad
API Updates
For our modders - please be aware, the game engine and game content have undergone several significant changes
- Paradigm shift: Since 1.21 you can define tags in Blocks, Items and Entities. As of 1.22 you can now use tags for all crafting recipes. In future updates we will expand tag compatibility to other systems. Though please wait before using these, the syntax might still change in pre2 or pre3
- Paradigm shift: You can now precisely time creature sounds by defining them as part of the animation meta definitions. This lets you bind a sound to the exact animation frame where the sound should be played, independent of how fast the animation plays. You can define multiple sounds per animation. This is how we added bear and wolf step sounds.
- We have migrated our source projects from .NET 8 to .NET 10. You will need to install the .net10 sdk to compile our public code.
- entity.ServerPos is no more. You can still access it but it now redirects to entity.Pos
- We moved world generation code from the survival mod to the essentials mod, so that total conversion mods can also utilize it
- CollectibleObject has many of its field turned into methods that also call their respective methods on behaviors
- Each landform in the landforms.json now must have a unique code. Previously you could use duplicated names. The game will now crash instead.
- For the red tinting hurt overlay of creatures to work you now need to add "Health" behavior to to the list of client side behavior as well
- Experimental feature: Mods can now modify the main menu background pictures. If any mods sets one, then the game will disable all vanilla ones.
Also noteworthy and just for your awareness, there are currently several notable ongoing projects within the VS coder team:
- The entire code base of Vintage Story now compiles without warnings, consequently we have either fixed or removed our own game engine's use of deprecated features
- We have a multi-year long goal of switching over to nullable value types in all code files
-
We continued to slowly integrate a comprehensive tags system. New since 1.21:
- Changed types of tag arrays and renamed them to tag sets
- Block and item tags merged into general tags
- General tags have limit of 65k tags now
- Tag sets now provide API with set methods
- Modders no longer need to interact with tag ids directly, they are hidden behind the tag set implementation
- Modders now can register their own tag types
- NOTE: there may be further changes to tags code before -rc.1
- We continued to refactor, improve and consistency check all our entity AI Tasks
- We continued our efforts to un-hardcode game engine and content, to make it easier to patch game content as well as reducing unexpected behaviors when modding the game
API changelog
- Feature: Rewrite stone throwing code into its own "CollectibleBehaviorThrowable". Allows one to make an item or block throwable with json changes only
- Feature: Food in a meal automatically gives a 30% bonus to the base satiety if no in meal nutrition is defined
- Feature: New server event "HandInteract". Called before any server side hand interact code is executed
- Feature: New parameter "MinCuboidsPerModel" for ground storable behavior that fixes problem with partial models in ground storage
- Feature: Item buff feature. Can now buff buffable collectibles e.g. when holding a falx in hands with command "/debug cbuff add sharpened attackpower 1.2" for +20% damage or "/debug cbuff add sharpened attackpower 1 2" for +2 flat damage. Available buffs: attackpower, maxdurability, durability, miningspeed. In code can also define durability of a buff, which is reduced alongside the item durability
- Feature: Allow BlockBehaviorHarvestable to require a tool
- Feature: Anvil blocks keep track of their metal tier
- Feature: Mods can now supply background images for the main menu in their modinfo.json. Currently, if any are supplied then all vanilla ones are disabled.
- Feature: Added the ability to create custom mixed pie recipes with multiple food categories as fillings
- Refactor: Major rework of the recipe systems in order to support tags
- Refactor: Move most of worldgen code to essentials mod and added modularity in some areas so that full conversion mods can use it
- Refactor: Changed args in capi.StartTrack()
- Refactor: Move onhurt invulnerable timer code from Entity.cs to BehaviorHealth.cs where it belongs. This however means the Health behavior needs to be client side as well, on all entities. In order to stay backwards compatible, these will automatically get added upon entity load, for now. It will print a warning if that is the case
- Refactor: GetBehavior(...) methods in Entity now avoid nullref exceptions inside them
- Refactor: Rename CollectibleBehavior.OnGetMaxDurability to .GetMaxDurability() and altered return value behavior
- Refactor: Shields now much more mod-dable. The shield code is now type/variant-agnostic
- Refactor: Rename dirtfloor.json to packeddirt-trampledearth.json, and aridpackeddirt.json to drypackeddirt.json
- Refactor: BlockUtil.GetKnifeStacks replaced with ObjectCacheUtil.GetToolStacks
- Refactor: EntityBehaviorRideable and EntityBehaviorGait code cleanup. Now more moddable. Ridden creatures no longer ignore swim sound set from json. Leave blank for silence. Set ridden movement speed only through gait, not through rideable controls. Also allow gaits to have an environment set for land or water, and provides logic for multiple speeds of swimming
- Refactor: Rename EnumBlockMaterial.Liquid to EnumBlockMaterial.Water
- Refactor: Lava now has EnumBlockMaterial Lava instead of Liquid
- Refactor: Merge ItemTagArray and BlockTagArray into CollectibleTagArray
- Refactor: Cleanup and Document AiTaskManager.ExecuteTask() and .StopTask()
- Refactor: Made methods of ItemWearable and ItemWearableAttachment virtual, also made private methods protected
- Refactor: Allow for multiple "AnimationSound" per animation meta. AnimationMeta.AnimationSound is now an array. Make sure to update all anim sounds in your entity json files from animationSound: { ...} to animationSounds: [ { .... } ]
- Refactor: Added dropQuantityMultiplier to BlockBehavior.OnBlockBroken()
- Refactor: In AI task json, rename chance, wanderChance, and searchFrequency to executionChance
- Refactor: Mushroom textures were placed in many individual folders. Now all are under the base 'mushroom' folder.
- Refactor: Replaced "noConsumeOnCrafting: true", used in the glider schematic itemtype with "consume: false" in the grid recipe
- Refactor: ItemWearable is now obsolete, replaced by CollectibleBehaviorWearable
- Refactor: ItemWearableAttachment is now obsolete, replaced CollectibleBehaviorWearableAttachment
-
Refactor: Many fields of Collectible now more moddable
- Implemented GetAttackRange for CollectibleBehavior
- Implemented GetMiningSpeeds for both CollectibleObject and CollectibleBehavior
- Implemented GetDamagedBy for CollectibleObject
- Implemented GetTool for CollectibleObject (interaction tooltips still use Tool directly)
- Implemented GetToolTier for CollectibleObject (interaction tooltips still use ToolTier directly)
- Implemented GetCombustibleProperties for CollectibleObject (interaction tooltips still use CombustibleProps directly)
- Replaced NutritionProps with GetNutritionProperties where possible
- Replaced TransitionableProps with GetTransitionableProperties where possible
- Implemented GetGrindingProperties for CollectibleObject
- Implemented GetCrushingProperties for CollectibleObject
- Implemented GetRequiredMiningTier for Block
- API Feature: Targetable AI tasks can specify a minimum and maximum injury amount of the target
- API Feature: Added MouseWheelMove input event
- API Feature: ItemSlotCharacter now uses virtual CheckDressType instead of static IsDressType
- API Tweak: BlockMultiblock now uses .GetInterface() instead of .GetBehavior() to find interfaces
- API Feature: Added texture bleeding system for seamless block transitions
-
Feature: New block properties for controlling texture bleed behavior:
- BleedPriority (auto from material or manual override)
- CanReceiveBleed, BleedOverlayTexture
- BleedTopFaceOnly, BleedGroup, BlocksTextureBleed
- Refactor: Collectible.OnCreatedByCrafting() and CollectibleBehavior.OnCreatedByCrafting() "gridrecipe" argument is now of type "IRecipeBase" instead of "GridRecipe"
- Refactor: Worldgen: Moved ChunkColumnGen event registration from StartServerSide to InitWorldGen()
-
Refactor: New tag condition matching system. Complex tag conditions hold either a set of disjunctive entries ([a and b and c] or [d and e]) or as a set of conjunctive entries ([a or b or c] and [d or e]).
-
In both cases each of the inner sets can also have a set of forbidden tags that is always disjunctive. The syntax for using these in json follows one simple rule: If no junction verb is specified, the group is treated as conjunctive (a and b and c)
examples: -
[["all", "of", "these"]]
[["all", "of", "these"], (or) { allOf: ["all", "of", "these"], noneOf: ["any", "of", "these"] }]
{ allOf: ["all", "of", "these"], noneOf: ["any", "of", "these"] }
{ anyOf: ["any", "of", "these"], noneOf: ["any", "of", "these"] }
{ anyOf: [["all", "of", "these"], { allOf: ["all", "of", "these"], noneOf: ["any", "of", "these"] }] }
{ allOf: [["anyOf", "of", "these"], (and) { anyOf: ["any", "of", "these"], noneOf: ["any", "of", "these"] }] }11:20 AM
these can be used in recipe ingredients and entiy behaviors for now* Replacement Tag System
-
In both cases each of the inner sets can also have a set of forbidden tags that is always disjunctive. The syntax for using these in json follows one simple rule: If no junction verb is specified, the group is treated as conjunctive (a and b and c)
- Tweak: Use GetInterfaces for all instances of IIgnitable
- Tweak: Add stencil buffer API to rendering interface
- Tweak: Collectible.DamageItem() - Added optional arg "destroyOnZeroDurability"
- Tweak: Frameprofiler (.debug logticks xx) now records mousedown/mouseup event cost as well
- Fixed: Collectible.OnHeldDropped was not called server side
- Fixed: Rideable behavior no longer ignores minGeneration setting
- Fixed: Crash when entity tries to play sound it did not have
- Fixed : When using a villages.json to specify modded villages a non wildcard schematics path would not resolve properly
- Fixed: Unable to export texture atlasses when intallation folder did not have user permissions, they now go to the data folder instead
- Tweak: New overload CraftingRecipeIngredient.Resolve(IWorldAccessor world, string sourceForErrorLogging, IRecipeBase recipe) should be used to Resolve input ingredients, to ensure they are registered to the new fast recipe matching
- Tweak: IWorldAccessor has new read-only property IWorldAccessor.FastSearchRecipesByIngredient; this will be populated by the new CraftingRecipeIngredient.Resolve() method mentioned above
- Tweak: Transform editor dialog now has firepit transform support
- Tweak: Spawner blocks can now define rain and temperature conditions
- Tweak: Added OnContainedInteractCancel for use in ground storage interactions
- Tweak: The Block animation system now also hooked up to the animation sounds system. Example implementation: Bellows
- Fixed: 'scale' property in shape overlays did not work
-
Fixed: Offsets from mounted entities now make sense, existing ones will need adjusting
- The mounted animation should position the player relative to the hitbox
- The attachment point on the mounted creature should go on the part of the entity the player's movement follows
- The seat offset adjusts the location of the player's hitbox relative to the attachment point* Internal: Change pelt grid recipes that accept multiple sizes, to new 'anyof' format, for Rennorb to check, as they don't seem to work.
- Tweak: Hides and their various associated items now use the tags system for recipes, with the result that bear hides can now be used directly in the same recipes that only generic hides could be used in directly before.
- Tweak: 'item-crushed-leadoxide' renamed to 'item-crushed-galena', to better align with standard naming formats.
- Tweak: Better logging for errors in grid recipes
- Tweak: New construction options! Structure generation via structures.json now also supports placement: "Shallowwater", supports minForest/maxForest constraints, and fixes some structures generating under water
- Tweak: The grid recipe loader will now print a warning if a ingredient wildcard never matches
- Tweak: Allow for custom attribute based grouping of things like shields or bookshelves in the handbook
- Tweak: Added BroadcastMapRegion to the WorldManager to force send a map region for example after using /wgen regen to update structures debug wireframes
- Tweak: Correct handling of CollectibleBehavior.OnHandbookRecipeRender. This also means a new argument "ref EnumHandling handling" is added, breaking compatibility with mods implementing this method
- Tweak: Clothing no longer renders onto seraph skin by default, set collectible attribute "renderOntoSkin" to true to reactivate that
- Tweak: AnimatableRenderer now supports mixed rendering of opaque and transparent geometry. It'll automatically extract it from the supplied mesh
- Tweak: Structure placement "Surface" now also checks U blocks
- Tweak: Removed logged startup warning "Is a {0} mod, but .cs or .dll files were found. These will be ignored." in dll mods that had a worldconfig property set. It served no purpose.
- Tweak: Added IWearable and IWearableStatsSupplier interfaces, which are now used in new behaviors
- Tweak: Implemented following methods for CollectibleBehavior: RequiresTransitionableTicking, ConsumeCraftingIngredients, UpdateAndGetTransitionStates. UpdateAndGetTransitionState, GetMergableQuantity and TryMergeStacks
- Tweak: Metal types of lamellae, chain, and scale items that do not have corresponding armor sets have been removed.
- Tweak: Ground placed collectibles can now emit light
- Tweak: Doors can now specify liquidBarrierHeight per block segment
- Tweak: AnimationMetaData Sounds can now be set to looping
- Tweak: EntityBehaviorAttachable can now set useShiftAttach: true in json to use the shift key for attaching and deatching
- Tweak: Sound tracks can now be structure specific
- Tweak: Allow liquid containers to set custom drink portion sizes in JSON
- Tweak: Improve loading times with many mods installed (recipe loading times 21s => 8s, json patching times 47s => 3.6s). Contribution by tehtelev
- Tweak: When json patches target a missing file, log an warning to the main log file instead of a debug entry in the debug file
- Tweak: EntityBehaviorAttachable can now set useShiftAttach: true in json to use the shift key for attaching and detaching
- Tweak: Allow entities to specify useSlotPrefix: true in attributes to allow other shapes to be added to it with a different texture by adding the slotCode to the texturePrefixCode
- Tweak: Can now defined a "frostOverlayThreshold" an entity type json attributes to change the temperature at which an entity is 100% frosted over
- Tweak: Can now configure ground storage messy12 positioning
- Tweak: Made prevPlayerPos public in GuiElementMap
- Tweak: Made world map color randomization configurable
- Tweak: Made button background color not hardcoded
- Tweak: Game now warns you if you have attachment point codes duplicated, as it results in undefined behavior
- Tweak: Two new MeshData methods, .Scale() and .Rotate() with no origin specified, will scale/rotate around the block center point
- Tweak: Renderpass Decor is now available, used for decor overlay layers; see vanilla overlays for examples
- Tweak: add BlockType attribute "allowOverlays: false" to prevent moss, dust and other overlays from being applied; can also in rare cases use "allowOverlays: true" to force allowing of overlays where they would normally be auto-disabled (eg. on transparent blocks or ice blocks)
- Tweak: BEQuern.cs move all private fields and methods to protected
- Tweak: Add font stroke to debug screen text to make it more readable
- Tweak: Mods can now add a assest/mymod/config/remapentities.json which then gets automatically merged with the games entity remappings, please do not replace assets/game/config/remapentities.json unless you really really want to overwrite the entire vanilla entity remappings
- Tweak: Mods can now add a assest/mymod/config/remaps.json which then gets automatically merged with the games remappings, please do not replace assets/game/config/remaps.json unless you really really want to overwrite the entire vanilla remappings
- Tweak: Allow custom shape for harvestable skep mesh
- Tweak: Make the game engine more tolerant towards missing files
- Tweak: Add ability to remove a mod asset origin
- Tweak: Improve support for framebuffer rendering. Added capi.Render.GenTexture(), rename capi.Render.FrameBuffer to capi.Render.CurrentFrameBuffer, can now also get capi.Render.CurrentFrameBuffer, added capi.Render.OrthoMode() and capi.Render.PerspectiveMode()
- Tweak: EnumSoundType moved from Vintagestory.API.Client to Vintagestory.API.Common (since it may be used by the server as part of SoundAttributes)
- Tweak: AnimationSound now supports 'chance' of the sound being played
- Tweak: Can now bulk edit transforms of variantgrouped collectibles
- Tweak: Much cleaner implementation for adding support to custom transforms editing via the transform editor. Instead of weird save/load/close stuff, instead register to event bus events "onsettransform" and "ongettransform". See ItemTongs.cs for example
- Tweak: Added HabitatSize property to spawning conditions, only works for animals with Habitat=Underwater or Habitat=Sea. Default HabitatSize is 2
- Tweak: Added animal spawn maps. This lets you further constrain animal spawn to certain regions only. Example implementation: Fish spawn
- Tweak: Items and Blocks can now define a "ParticlesTextureCode" to specify where block/item breaking particle colors should come from
- Tweak: When checking the nutrition properties for liquid inside of containers, fallback to the default for the liquid if per litre properties are not found
- Tweak: It's now possible for meals to be intoxicating
- Tweak: It's now possible to specify a non-default groupBy to use when creating an ItemStack slideshow in the handbook
- Tweak: Trait attributes can now define blend types
- Tweak: New CollectibleBehavior for harvesting items in ground storage
- Tweak: Ground storage now uses GetCollectibleInterface to obtain IContainedInteractable, making it possible to add it to collectible behaviors
- Tweak: LiquidContainerTopOpened now uses IContainedInteractable, Ground Storage code for this interaction removed
- Tweak: Existing elk sounds moved from creature/hooved/large/elk folder to new creature/animal/mammal/hooved/deer folder, to conform with new shape/texture/entity folder standards.
- Tweak: IContainedInteractable now has GetContainedInteractionHelp method
- Tweak: ModMaker Update: Fixes mod maker modinfo creation to be compatible for moddb uploading
- Tweak: new optional ContainedTextureSource() constructor with callback for off-thread texture uploading
- Tweak: new optional ITextureAtlasAPI.GetOrInsertTexture() call with callback for off-thread texture uploading
- Tweak: Chat command can now specify custom syntax explanation for an argument, by appending .WithExplanation() to an argument
- Tweak: Added CollectibleBehavior.GetAttackPower()
- Tweak: Allow to change a block after falling. With a new "variantAfterFalling" parameter, it's now possible to change the block after falling, like a broken variant or a variant with a lower shape (in case the shape is less than 15 voxels like the chandelier)
- Tweak: Renamed IWorldManagerAPI.CurrentWorldName -> CurrentWorldFilepath to better describe itself
- Tweak: OnTree BlockPatches now respects the TreeType property
- Tweak: AI tasks can use a single time frame that extends through the night, rather than needing one from evening to midnight and another from midnight to morning
- Tweak: Renamed InventoryPlayerBackPacks to InventoryPlayerBackpacks
- Tweak: Added IServerEventAPI.PlayerReady event, which triggers after all mods signal the player is ready to play. Currently used by the character selector, so right now this event only triggers once the player has selected his character (or right away if he selected it already in a previous join). Cleaned up XML documentation for PlayerJoin, PlayerNowPlaying events
- Tweak: Animal generation check happens from EntityBehaviorHealth instead of BehaviorHealingItem
- Tweak: BlockEntity tick listeners now log their positions on exception
- Tweak: Incorrectly formatted strings sent to ILogger methods now will throw compile errors instead of crashing ingame
- Tweak: Unhardcode antler item names from antler growth behavior
- Tweak: Changed Entity.ServerPos and Entity.SidedPos to refer to the Entity.Pos property, so they are no longer different from the Pos property. This is to remove confusion about which to use where.
- Tweak: In EntityBehaviorMultiply, can now provide an array of requiresNearbyEntityCodes from json. On the code side, more fields made accessible.
- Tweak: Sailboat-mounted lantern no longer uses a separate model. It instead attaches the 'wall' lantern shape to an invisible LANTERNPARENT element in the sailboat shape. One less model to maintain.
- Tweak: Methods in BehaviorRideableAccessories made protected and virtual
- Tweak: Duplicated landform/mutation codes in landforms.json are no longer valid. The game will error and exit on startup now. Each landform must have a unique code.
- Tweak: Allow harvestable skeps to have custom food tags defined in JSON
- Tweak: Allow custom food tags for ItemStack variants with ICreatureDietFoodTags
- Tweak: Blockpatch system: also respect forest value even for UnderTree placement
- Tweak: Targetable AI tasks can read a TargetOnlyInteractableEntities true/false value from json
- Tweak: API additions to IMapRegion and IServerEventAPI to support future river generation
- Tweak: IBlockFlowing now has additional properties and methods, including position-aware GetPushVector(BlockPos). Default implementations are in BlockForFluidsLayer.cs. Modded liquid blocks should ensure their implementation is correct otherwise particle or entity motion may be wrong, or other bugs
- Deprecation: ItemPoultice moved to Legacy folder. Use BehaviorHealingItem instead.
- Fixed: EntityVillager modding robustness. Did not respect mod domain, crashed on missing textures or missing sounds, did not allow for single sound voice
- Fixed: Don't crash when no hotbar is loaded and one uses the offhand slot flip hotkey
- Fixed: seraph face and body became invisible after .reload textures command
- Fixed: When loading a world the font size of labeled chests will no longer reset to the default size
- Fixed: Farmland at low temperatures or low light levels now properly delays crop growth even when temperatures and light levels increase back to acceptable levels
- Fixed: The termite mound would drop itself instead of termites when their supporting block was removed
- Fixed: .reload shapes command was not reloading placed blocks properly
- Fixed: Avoid null reference exception when calling WorldMap.TryAccess when access is not granted despite being unclaimed
- Fixed: Item/tool/material texture folder contained many redundant and non-standard-sized textures. All textures in this folder have been reassigned to other standard textures, or moved. Spear and spearhead itemtype json texture sections reorganized.
- Fixed: Properly use loaded metal variants for all types of blocks and items
- Fixed: Max saturation being reset to 1500 on client side
- Fixed: Game crashing under `.cf sedi 1` plus spawned projectiles
- Fixed: Loading of assets is now fully case insensitive internally. Should fix uppercase/lowercase asset loading issues on modded assets
- Fixed: Crash when parsing json to an AssetLocation using AsObject
- Fixed: DrawSvg,LoadSvg,LoadSvgWithPadding with no color specified would default to fully transparent now we properly load the color from the SVG and convert it to BGRA for rendering
- Fixed: Normalize normal vector before packing to stop bit bleeding (PR 55 by phonon)
- Fixed: BlockLiquidContainerBase TryTakeContent would sometimes give back incorrect stack size
- Fixed: When eating a liquid container with nutrition properties the player's satiety would become NAN and eventually lead to a crash
- Fixed: Properly allow for liquid containers that are edible, and will be eaten when empty
- Fixed: Creative inventory tabs cut off wide text
- Fixed: CollectibleBehavior.GetRemainingDurability() called CollectibleBehavior.OnGetMaxDurability() instead of .GetRemainingDurability()
- Fixed: Interaction help itemstack rendering can go oversize
- Fixed: Rendering ui inventory contents into a framebuffer did not work
- Fixed: Seaweed and Seagrass had EnumBlockMaterial.Liquid instead of Plant
Game updates (changes since 1.22.0-rc.10, also included above)
- Tweak: Remove large bellows recipe since mechanical power integration was not finished in time
- Tweak: Allow diagonal snow shovelling
- Tweak: When pushing lots of snow, little bits may fall off on either side
- Fixed: Incorrect link in the fishing guide
- Fixed: Rare crash involving written parchment or book in hotbar
- Fixed: Rare crash when adding meal to an empty bowl on the ground. GH #8650
- Fixed: One exploit to split rapid flowing streams when flowing vertically down
- Fixed: 2x1 and 1x2 paintings only half visible when there was a decor layer on the wall
- Fixed: Sprinting would drain less satiety when low on health
- Fixed: Hunger rate applied twice, causing a setting of 0.5x to be 0.25x and of 2x to be 4x
- Fixed: Unable to put empty bowl into barrel inventory slot
- Fixed: Berry bush cuttings would drop without traits when broken
- Fixed: Bear attack range increase wasn't properly applied
- Fixed: Missing carp texture error
- Fixed: Able to temper more often than quench
- Fixed: Falling coal was rendered as a big unknown block
- Fixed: Bishbait dupe bug
- Fixed: Ability to duplicate/destroy various blocks using snow shovels
- Fixed: Snowcovered slabs not flush with adjacent blocks
-
Fixed: Multiple locust fixes
- Tamed locust behavior all over the place. Now properly protects the owner again and does not attack neutral creatures
- Tamed locust Moves faster to owner when owner is too far away (had foot sliding)
- In snow walkspeed debuff applied twice to all locusts
- Fixed game crashing when right clicking a dead tamed locust
- Less wonky stepping on small steps. Will now use the stepping behavior instead of going vertical climb on small height differences
- Fixed: Again broken layering of upperbody clothing on seraphs
- Fixed: No longer able to sell clothing in the auction house
- Revert "Fixed: 'Light brown' and 'weathered' wattle and daub textures were switched."
-
30
-
1
-
4
-
8
-
4
-
3