Dear Extraordinary Survivalists
v1.18.0, a stable release, can now be downloaded through the account manager (section "Other Goodies").
At long last! We're happy to release a stable build of 1.18 to our fantastic community. And while it took over 7 months and around 500 individual features, tweaks and fixes we did manage to cram a lot of stuff into this update. Honestly, I did not expect the main story event to turn out so well as it did in the end. I believe there is immense potential to tell a truly compelling story if we keep at it. As always, we're immensely grateful to everyone that tested the test builds and provided us with bug reports and other feedback. We hope you will enjoy this update!
What about the .net7 build?
We announced a proposed update to .net7 to improve perfomance - it is currently on hold. We are waiting for a 3rd party library to fully support net7, which should be pretty soon.
Whats next?
For 1.19 we would like to refocus on the topic of dejank - a dejank redux so to speak. We'd like to playtest with the VS team and iron out inconsistencies and annoyances where we find them, but we already have a long list of things we'd like to look at. We hoped to also rework the surface and underground ruins for 1.18 - which will need to be pushed back to 1.19. We also hope to work on the second main story event in parallel when feasible.
Game update trailer
Screenshots & Gifs
Added first main story event: The Resonance Archives. A vast underground structure for you to explore, master its challenges and loot rare treasures.
Added NPC Dialogue. You can now have conversations with traders
Added Glider: Descend elegantly from tall mountains. Added rift wards to defuse treacherous rifts near your base.
Added rafts. Stay dry when traversing the seas.
New gadgetry: Night vision device, Single-use base return teleporter and a death point return teleporter can be crafted from rare exotic parts (WIP)
Oceans: You can now create worlds with large bodies of water. (Currently) off by default, enable it in the Customize World screen
More diverse world generation, such as the new upheaval system, which creates large-scale mountainous areas
Geologic activity system. Some areas in the world now spawn hot springs, and possibly even lava rivers closer to the surface
Overhauled poles. Instead of massive mountains, there are now windswept glaciers and desolate valleys
Rocktyped ruins: Ruins now adapt to the local rock strata (the builders apparently liked to source their rock locally)
New landforms: You will fall in love with the new terraced mountains and super flat areas
Moss now grows on trees
Added veins of cracked rock
Added writing system and interactable bookshelves. 1.18 is also "your lore update" \o/
160+ new types of butterflies and a butterfly net to catch them. Caught butterflies can be placed in display cases.
Door overhaul: Added much larger doors/gates, as well as wood-typed doors, and door animations
Sign block overhaul: Can now change font size, improved writing experience and added metal plaques
Angled beams system: A wholly different placement system for wooden beams
Improved chiseling: Glass is now fully chiselable and seamless. There is now also a chiselable "creativegrass" block in creative mode.
Added treasure maps. The Treasure Hunter trader offers to help you find hidden treasure ... for a fee
Reworked most flower models
Improved reeds model
Visible fertilizer. You can now see how much fertilizer you applied to farmland
Reworked firewood and orientable firewood piles
Improved handbook: Now shows output quantities and other QOL changes
Overhauled the command system. New Command Block functionality. Command blocks can open and close doors and operate certain other activatable blocks (for example a Mechanical Power clutch). There is also a new Conditional Block which detects nearby entities meeting specified conditions, and a Ticker Block to repeat actions automatically
Players in multiplayer can now download a copy of their own claimed land to their local computer. This should help players migrate to a new 1.18 world.
Added a tutorial mode (WIP)
Auto updater for Windows users
Mods can now be installed with a single click from our mod database.
Added ability to swap textures, limited to clutter blocks only
Added wearable spectacles
Full visual rework of our music player - it is now called Resonator, and the media are called tuning cylinders
All game updates since 1.17.12
- Feature: The first main story event. A massive, highly detailed underground structure for you to adventure into, with many new features and blocks (not described nor pictured here, to avoid spoilers!)
-
Feature: Improved world generation
- Added Oceans system. Disabled by default but can be set up in the World Configuration screen. Added saltwater whe playing with oceans.
- Added vertical upheavel system. Very large scale mountainous regions, and flattened plains regions. Configurable.
- Geologic activity system. Some areas now have underground lava rivers closer to the surface, as well as hot springs above underground lava pools. Configurable.
- Overhauled polar regions. Instead of mountain ranges there now are glaciers devoid of structures. Added packed ice block.
- Added 6 new landforms: Large islands, Realistic flatlands, Realistic mountains ledged, Realistic mountains quintuple-ledged, Stepped sinkholes and "Veryflat". Fine-tuned many of the existing landforms. Increase landform sizes by 20%
- Feature: Chunk border smoothing system. Should greatly mitigate jarring world borders when opening a 1.17 world in 1.18, and future versions where worldgen changes
- Feature: Cracked rock now spawns like quartz veins
- Feature: Can now generate up to 8x8 million block worlds (Experimental. Previous max was 1x1mil) (Technical info: Fixed 2 issues with large worlds - entity movement jitter and chunks saved in the wrong locations)
- Feature: Surface ruins are now rocktyped based on local rock strata.
- Feature: Surface ruins and trees in wet&warm climates now have moss on their logs
- Feature: Improved support for ruin/building generation, most notable for mods that add these. (Structures placed by worldgen now accurately use local grass/soil/sand/gravel, Sometimes ruins could be placed overlapping near the edges of mapregions, this should no longer occur, Underground schematics which included water were sometimes filled with stone in place of the water, Rivulets (waterfalls) can no longer generate in 1-thickness stone ceilings including the roofs of ruins, Ground storage items, wall leaning tools, and interactable bookshelves should now rotate properly, Structures (in structures.json) can now have suppressTrees and suppressWaterfalls bool settings: these prevent the stated worldgen feature from being able to spawn anywhere within the structure's bounding box (trees includes shrubs))
- Tweak: Tree foliage fine tuning. Each individual tree is now slightly ahead or behind the season tinting, and chopping a tree is now more likely to only fell the targeted tree
- Tweak: Added gravel coverage & loose rock to mountain peaks to mitigate large empty areas with exposed rock
- Tweak: Added smoother terrain noise generator by K.Jpg, reduces artifacting that some terrain experienced before
-
Tweak: Improved support for large world heights
- Reduce rivulet spam high in the mountains, most apparent on large world heights
- Ore deposits now scale with world height (except surface copper)
- Terrain detail now scales with world height setting. Previously terrain would become very low detail at large world heights.
- Tweak: Added slight vertical variation to block layers y-values
- Tweak: Increased ruined village size variability
- Tweak: Reduced trees at the north/south pole
- Tweak: Fewer floating islands (20 block size cull threshold -> 40 block size threshold)
- Tweak: Added another soil layer
- Tweak: Reduced spawn depth of treasure chests
- Tweak: The grades of the deposits bismuthinite, galena, ilmenite, limonite, hematite, magnetite, malachite and sphalerite now increase, the deeper they spawn
- Tweak: Prevent generation of loose boulders and loose stone on snow and ice
- Fixed: Water lily no longer generates in very deep water
- Fixed: Loose patches of rusty gears not spawning underground
- Fixed: Floating sand generating on water in cold areas
- Feature: Added Glider. Descend elegantly from tall mountains. Its crafting recipe is a potential reward from the main story event.
- Feature: Added Rafts. An innovative 1- or 2-seater watery transportation system. Requires crude oar in main hand.
- Feature: Jonas devices - Night vision device, Single-use base return teleporter and a death point return teleporter can be crafted from rare exotic parts found in ruins and other source. (Work in progress still)
- Feature: Added rift ward, reduces spawn of rifts by 95% in a 30 block radius around the ward. Consumes temporal gears.
- Feature: Added treasure maps. They add waypoints on your world map pointing towards treasures or give you directions if the worldmap is disabled. Sold by traders.
- Feature: New music track for when you are travelling, titled "Radiance and Rust"
-
Feature: Writing system and Bookshelves
- Can now write in books and parchments. Books can be signed to make then non-editable
- Added ink and quill item, required for writing in books
- Added fully interactable bookshelves, lets you store and remove up to 14 books in each one
- Feature: Added 160+ new types of butterflies. Butterflies can now be caught with a butterfly net & can be placed in display cases. Butterfly spawning behavior now depends on climate and elevation.
- Feature: More collectibles! Clutter blocks can now drop at a 50% chance. Added over 100 more clutter blocks.
-
Feature: Doors overhaul
- Added 3m tall doors, as well as 2x2 gates and 2x4 gates, all of which can also be combined to double doors / double gates.
- Doors crafted from boards are now wood-typed and no longer have a sleek look
- The old sleek looking door can be purchased at the trader instead
- The opening and closing sequence of doors is now animated
-
Feature: Sign block overhaul
- Signs and labeled chests text font size is now configurable and more easily moddable
- Sign text editor text area more accurately represents how the actual text is displayed on the sign
- Added writeable metal plaques that use a new medieval font
-
Feature: Improved Handbook
- Improved search result quality (prioritize full word over partial words, deprioritize ore blocks and items)
- The handbook now displays output quantities for crafting and barrel recipes
- Added growing properties of fruit trees to the handbook
- New textures for diluted alum, cassiterite and chromite so one can tell apart the 3 liquids suitable to create mordanted cloth in the handbook
- Lanterns are now grouped. Fixed Cider and Aqua vitae not listed. Fixed several links not working in the handbook
- Feature: Improved display cases. Added tall display case. Can now center-place items in display cases. Placing direction now affects the placed item rotation
- Feature: Added angled beams system. Allows you to create long straight lines of wood in your constructions. Comes in wood variants and some aged metals. Note: beams are purely decorative
- Feature: Tutorial system. Can now start/stop a tutorial from the handbook. Multi-tutorial support. In pre.1, currently only has one starter guide tutorial.
- Feature: Large amounts of new seraph clothing, found in underground ruins
- Feature: Visible fertilizer. Fertilizer applied to farmland is now visually shown on the farm land
- Feature: Added one new rotation option to the planks block, now acts like logs when placing (vertical, n-s and w-e)
- Feature: Can now download land claims using command /land claim download [index]
- Feature: The game now attempts to download unsatisfied mod dependencies from the Vintage Story ModDB
- Feature: Added auto-updater for the Windows client (not available on Linux/Mac)
- Feature: Added 1-click mod installer support for our mod database
- Feature: Added experimental playstyle called "Homo sapiens" that intends to remove all lore content from the game. WIP.
- Feature: Dialogs and main menu now have a textured background
- Feature: Added 50 wearable butterfly pins (creative mode only currently)
- Feature: Added glasses face accessory for seraph
- Feature: Added ruined weapons. Unique models with fairly high damage, but very low durability. You'll have to choose whether to use them in a pinch or keep them on display somewhere.
- Feature: Full remake of the "music box". New model and new concept. The music player is now called "Resonator" previously "Echo Chamber", and the mediums are now called "Tuning cylinder" instead of "Resonance Archive".
-
Feature: New (survival mode) construction options
- Feature: Parchment can now be crafted
- Feature: Added sod roofs and debarked logs, survival craftable
-
Feature: Improved chiseling!
- Feature: Chiseled glass is now seamless. Improved FPS in heavily chiseled areas by about 4% (thanks, Xytabich)
- Feature: Chiseled blocks can now support climate/season colored blocks. Added "creativegrass" to the creative inventory as an example
- Tweak: Modified how chiseling partial blocks behaves. in 1.17 it constrained the players within the original bounding boxes. In 1.18 it constrains the player within the original volume of each material.
-
Feature: Improved world maps!
- Improved shading to better visualize the steepness of the terrain
- Waypoints are now more visible against the map background
- Tweak: The Add Waypoint dialog now auto suggests a name based on the chosen icon and color
- By default, a waypoint is now created where you last died. Only the most recent death waypoint is kept. Can be disabled server wide via worldconfig allowDeathwaypointing or per player via /waypoint deathwp false
- Feature: Added /land claim export to allow players on multiplayer servers to export their claim to be saved on the server. Disabled by default, requires privilege "exportclaims" to run. It is up to server owners to determine what to do with these exports - they are in the server data folder. Useful for migrating to a 1.18 world via worldedit.
-
Feature: Added ability for players to generate the main story event from 1.18 - the Resonance Archives - at a chosen location through commands. This is for players and server owners that would like to have the main story event also in their old worlds. Instructions:
1. Find a suitable location where there are no chunks that you want to keep, in a large area around
2. Look at a block for the desired center location. Run command /setstorystrucpos resonancearchive l[]
3. Then standing at the same center location, use either command /wgen regen 6 to generate the terrain on even ground, which might expose parts of the structure on the world surface in some instances, or use command /wgen regenf 7 to generate hilly terrain which will better cover the full extent of the Resonance Archives, but might create some chunk borders. -
Tweak: Gameplay balancing changes
- Feature: Player can no longer hold hot items above 300°C in hands directly - requires wooden tongs in off-hand now.
- Feature: Bows now have accuracy modifiers. High end bows are now more accurate
- Feature: Hunters now have 20% increased bow drawing strength
- Tweak: Added coyote timer to player jumps (i.e. you can still jump up to 0.15 seconds later after falling off a block)
- Tweak: Increased min charge time for bows from 0.35s to 0.65s
- Tweak: Animal harvesting no longer yields bones, but breaking the carcass does
- Tweak: For the standard survival playstyle, a respawn location set by a temporal gear is now limited to 20 uses.
- Tweak: Prospecting pick node search mode is now enabled by default in standard survival (radius 6)
- Tweak: Foxes, Wolves and Bears will now de-spawn after 14 in-game days
- Tweak: Standing in lit firepits or on hot ingot/tool molds now damages players and creatures alike (though players can still handle hot ingots and tools with impunity)
- Tweak: Player can no longer place blocks directly in Lava
- Tweak: Lore items no longer disappear when discovering, and can be right-clicked to read directly.
- Tweak: The sling now requires a 0.75 seconds charge time instead of 0.35s
- Tweak: Wood chests now require 1/4th of a metal ingot to craft in the form of a new "metal nails and strips" item which can be smithed
- Tweak: Shield blocking mechanic tweak - attacks from a steep angle (above or below the player beyond 65°) now require the player to be looking up/down to block the attack
- Tweak: Increased steel chisel durability (5000 -> 6000)
- Tweak: Breaking tallgrass with a knife no longer removes it but trims it. Trimmed grass no longer drops dry grass.
- Tweak: Cassiterite, chromite, and lead now use the same quantity averaging as ilmenite, when crushed
- Tweak: Nuggets of ilmenite, galena, chromite, and cassiterite can now be crushed in the Pulverizer. In order to maintain parity with regular ore, the yield of nuggets is less than 1. You will generally, on average, get one crushed unit for every 3 nuggets.
- Tweak: Animal harvesting speed bonus for higher tier knives (proportional to the knife's plant harvesting speed)
- Tweak: Reduced Drifter max light spawn threshold from 9 to 7, to more easily Drifter-proof areas
- Tweak: In single player, the game now fully pauses during character creation
- Tweak: Alum deposits can now also spawn surface ores
- Tweak: Reduced chance of calm rift weather
- Tweak: Bighorn sheep hitbox and wander speed fine tuning
- Tweak: Meals now get lost when a pot or bowl with a meal is dropped in water
- Tweak: All stone-age knives now produce just 1 knife from the knapping recipe but have their durabilities doubled
- Tweak: Clean bandages can now be used to heal for +3 hp
- Tweak: Made sand storms a bit less common
- Fixed: Bears drowning in water
- Fixed: Hunger exploit when eating a meal while full
- Fixed: Damage taken from inserting a temporal gear was absorbed by armor
-
Tweak: Visual fine tuning
- Feature: New 3d model for reeds
- Feature: Reworked firewood model! Also affects firewood piles, firepits and pit kilns as well
- Feature: Added underwater Sediment disturbance particle effect
- Feature: Particles from held torches are now also affected by wind. Tweaked fire effects of torches and firepits to be more fire-like.
- Tweak: Increased overall scene brightness on sunny days
- Tweak: Desert storm fog no longer appears when it recently rained
- Tweak: Cloud visuals fine tuning. Now a bit more fluffy looking. Mitigate jarring cloud edges.
- Tweak: More shader fine tuning (fixed horizon not same color as fog with godrays enabled, flat fog extending slightly further into the horizon, mitigate heavy smudge on the sun with godrays enabled,
- Tweak: Snowfall is now more dense
- Tweak: Harvesting berries now spawns some particles
- Tweak: The "protect eyes" seraph pose during strong winds now no longer triggers if you are indoors or not looking into the wind direction
- Tweak: Seraph now also adjusts its torso when looking around
- Feature: Seraph now plays one of 4 random animations after being idle for 20 seconds, at a 1% chance per tick
- Feature: Seraph can now wear spectacles
- Tweak: Text on sign blocks is now a bit sharper
- Tweak: Reduced see-through effect of water near the player
- Tweak: Made rain drip particles wind affected
- Tweak: Creature step pitching visual fine tuning
- Tweak: Reduced shiny effect for blocks that are in shade
- Tweak: Temporal stability twitching now disabled when not in survival mode
- Tweak: Replaced weak block reflectivity mode with a pixelated version, the old smooth one was also broken on Nvidia cards
-
Tweak: Performance optimizations
- New "ChunkUploadRateLimiter" graphics settings that can help you reduce potential lag spikes during chunk loading (Detail: on PCs with fast CPUs and slow GPUs, new chunks may be rendered so quickly that a slow GPU chokes up, causing intermittent frame rate drops on affected systems, when moving into new map areas)
- Supercharged chunk generation on CPUs that have at least 8 logical processors, e.g. 4 core, 8 thread CPUs. (Technical info: Chunk generation thread no longer goes to sleep while generating at 8+ logical processors)
- Eliminated lag spikes in some areas of the game, most specifically when searching for buckets in the creative inventory (4s lag spike -> no lag spike)
- Improve world startup speed by ~2.0 seconds. (Technical info: Make Lang system lock-free)
- Further improved startup performance on worlds that are using many modded blocks (or were using many! even if a mod is removed, it can have some lasting effect on block data storage in a saved game)
- Much improved overall FPS when dropping thousands of items. (Technical info: If there is over 1500 entities loaded, dropped items will enter a physics dormancy state after a couple of seconds if there is no player in a 7 block range, where they will tick their physics 20 times slower)
- Slightly optimize dropped item despawn behavior as well
- Slightly increased overall FPS (Technical info: Tighter frustum culling check + do not draw moss and lichen, or loose stones at LOD2, additional face culling on less-visible distant leaves at LOD2)
- Slightly increased overall FPS #2 (Technical info: cave art and stone, gravel overlays not rendered at LOD2; partial blocks which are fully dark (0 sunlight, 0 blocklight) are rendered only at LOD0 distance, will only affect underground as world surface blocks have sunlight values)
- Tweak: Improve FPS by up to 23% when at max view distance. (Technical info: Clamp lod bias beyond 640 view distance, resulted in 13 FPS => 16 FPS / 17mil tris => 12 mil tris at max view distance in a heavily forested area)
- Tweak: Improve FPS with many falling blocks
- Tweak: Small creatures should now no longer trigger falling block avalanches
- Tweak: Mitigated a few sources of lag spikes on client and server (Technical info: Reduced lock contention, removed some unnecessary bits of code)
- Fixed: Client side slow memory leak (Technical info: map regions were never unloaded on the client)
-
Feature: Full rewrite of the command system to be more powerful, more flexible, self-documenting and more everything.
- Disclaimer: WIP. Thousands of lines of code were rewritten, but not all current commands are updated to the new Command API syntax.
- Many commands now allow for complex selectors and can operate on multiple targets at once. Full documentation will be made available by us by the time of a stable release. For now, please use the in-game /help command, it should be able to provide full help for the commands which use the new Command API. For example, /help tp
- Improved /ban command. Now must supply a time span and reason before banning a user. For a reasonless permaban, added command /hardban. More informative banned screen for the banned player when attempting to join. More informative output on "/list banned" and no longer prints expired bans. Expired bans are now deleted on server startup. Bans/Unbans are now logged to server-audit.txt
-
/tp now uses the new entity and target location selector systems. Examples:
- /tp 0 150 0 - Teleport yourself to 0 150 0
- /tp s[] Saraty - Teleport yourself to saraty
- /tp Tyron Saraty - Teleport tyron to saraty
- /tp p[] Saraty - Teleport all players to saraty
- /tp p[range=12] ~ ~10 ~ - Teleport all players within a 12 block range 10 blocks in the air
- /tp l[] Tyron - Teleport the currently looked at entity/player to Tyron
- /tp Tyron l[] - Teleport Tyron to the currently looked at entity/player
- When typing a wrong command, the command system now tries to find a similar one and suggests it as a clickable link
- Feature: New command /setblock <code> <position>
- Feature: New command /executeas <entityselector> <command>
- Feature: New command /activate <position> [arguments]. For supported blocks, it should be similar to a player right-clicking or activating the block. Currently supported: opening/closing doors, trapdoors and gates; executing a Command Block; operating a mechanical power Clutch
- Feature: New command /entity setattr command to set attributes on an entity
- Tweak: Removed /clearentities, replaced with /entity wipeall <entityselector>
- Tweak: /entity count and /entity countg now accept an entity selector argument
- Tweak: /entity remove now requires an entity selector, e.g. e[type=drifter*]
- Tweak: Commands /cit and /chunkunload are now respectively /chunk cit and /chunk unload
- Tweak: Command /debug cr is now /debug chunk relight
- Tweak: Command /debug delplr is now /player [playername] wipedata
- Tweak: Command /debug clrplrinv is now /player [playername] clearinv
- Tweak: Command /debug setgen is now /entity setgen
- Tweak: Command /debug setlact is now /entity setlact
-
Tweak: Changed syntax of /giveitem and /giveblock:
- Before: /giveitem type quantity toplayername {attributes}
- Now: /giveitem type{attributes} quantity entityselector
- /weather command tweaks
- Tweak: /autosavenow and /genbackup: Can now be run from server console
- Fixed /setblock not respecting block attributes argument
- Tweak: /we mark now requires '=' prefix for absolute positions
- Tweak: The /kill command now requires the "selfkill" privilege, granted by default, so that server admins can choose to remove it.
- Tweak: Disable .debug commands for non-admins in multiplayer
-
Feature: More creative mode content
- Feature: Added Conditional Block and Ticker Block as first steps to better support adventure map making
- Feature: Much more Clutter. Clutter has its own Creative tab. Added aged and rotten ebony planks, improved clutter crates, ruined small crate, more ruined tables and bed variants, ruined scroll racks, empty ruined tool racks, ruined lanterns, heavy doors, banners, pipes. aged armor stands, dirty gravel, long tables, aged polish rock, carved acacia log, ruined trunks, ruined translocator etc..
- Feature: Can now place omok pieces on a remodeled Omok table top. Pieces can be bought at the trader.
- Feature: Added various new block decor overlays to creative mode, such as mold, rust, spotty moss, wet gravel
- Feature: New Aged bricks block
- Feature: Added a texture flipper tool. Allows you to change the wood type on a number of clutter blocks.
- Feature: Added "measuring rope" creative mode block to help with relative coordinates needed by various commands
- Feature: new Worldgen Hook block to support generation of additional worldgen structures when this block is placed by worldgen, (see technical info in API changelog below)
- Tweak: Added veryaged and veryaged-rotten variants of debarked logs and support beams
- Tweak: Added several more features to the Spawner meta block
- Tweak: Can now find all decor blocks by searching for "layer" or "decor" in the creative inventory
-
Tweak: WorldEdit changes
- Feature: Worldedit: Added ability to gen trees with vines via "/wgen tvines 0..1"
- Feature: Flood fill tool: Can now separately ignore water or plants
- Feature: New chisel brush world edit tool paint in voxels
- Feature: Added /we mpacifywater. Pacifies water in selected area - i.e. turns all flowing water into still water
- Feature: Added /we mdeletewater. Deletes all water in selected area
- Tweak: Added "ignore water and plants" switch for the flood fill tool
- Tweak: Added chiselable collider meta block
- Tweak: World edit selection tools now have a more intuitive selection behavior
- Tweak: Air brush mode has a new "replace only selected block" mode
- Tweak: Added /we cx, /we cy and /we cz to change the selection in x,y and z axis
- Fixed: Imported and placed Schematics now place Decor blocks correctly
- Fixed: Worldedit Undo/Redo not working with decor blocks
- Fixed: Worldedit Undo/Redo borked with liquids
- Fixed: /wgen regen sometimes not sending chunks properly
- Feature: Textareas now support word automatic wrapping
- Tweak: Game now starts at year 0
- Tweak: Improved wonky hitbox on bells, bells no longer spawn surface drifters and try harder to spawn a mob nearby. A dead bell now remains on death.
- Tweak: Can now use wrench to rotate clutter blocks (also hold sneak to turn turn a block around the looked at block face)
- Tweak: All wrench-rotatable blocks now show this in their block interaction help
- Tweak: Disabled ram optimization setting "Do not optimize". Tends to make things worse, performance wise
- Tweak: Reduced max resolution slider value to 100% (was 200%). Can be still increased with .clientconfig
- Tweak: Made butterflies not flee from you when you sneak
- Tweak: Flower visuals rework. Several flowers now use a richer model. Reworked woad texture, (still to add: reworked cow parsley, reworked california poppy)
- Tweak: New texture for golden poppy and woad flowers. Increased golden poppy spawn chance 5-fold
- Tweak: Firestarter can be used in claimed lands with the use permision (required build/break permission previously)
- Tweak: Ground stored items can now be placed/removed in claimed lands with the use permission (required build/break permission previously)
- Tweak: Fish AI fine tuning
- Tweak: Nails and strips can now also be used for block reinforcement
- Tweak: Echo chamber is now renamed to Resonator
- Tweak: Added our moderators to the credits screen
- Tweak: Better auto-guessing for the right window size and GUI scale on first startup
- Tweak: The game is now more robust against removing/re-adding mods or blocktypes (Technical info: Block entity data on missing blocks was lost upon save&reload, it's now preserved in case the block is later re-added)
-
Tweak: Various dejanks / Quality-of-live changes
- Tweak: Fine tuned camera position time step, might reduce frame jitter
- Tweak: Vintagebeef now has a 3d model, tweaked pear on tree texture, fine tune roof corner 3d models
- Tweak: Fixed minor UI issues in the settings dialog. Added "Framerate issues" link to the wiki
- Tweak: 3rd person camera now looks through glass instead of zooming onto the seraph
- Tweak: Vines no longer drop "end" sections
- Tweak: Hide reticle in spectator mode
- Tweak: Snappier plate armor step sound
- Tweak/Fixed: The torchholder now also has a tight attachment area for chiseling
- Tweak: Prevent creatures from stepping on stalagmites/ctites
- Tweak: Breaking soil under ferns now removes the fern
- Tweak: Lit torches now write when they burn out in held tooltip and burn out in 48 hours as its written on the extinct torch.
- Tweak: The hotkeys to toggle the coordinate hud, block info hud and block interaction help (V, B, N) now require Ctrl to pressed by default (CTRL+V, CTRL+B, CTRL+N). Our intention is to save new players from accidentally switching off this useful help
- Tweak: Torches are no longer "Material: Other"
- Tweak: Removed butter from creative menu & handbook. Removed unused "Crank" item from the game
- Tweak: Parchment and books are now groundstorable
- Tweak: Renamed 'Cooper's Reed' to 'Cattails'. Reed baskets renamed to Reed chests, to avoid confusion with reed handbaskets
- Tweak: Added mod name to held item info if it's not a vanilla block
- Tweak: Removed "Stove" block from creative inventory (you can still get it via /giveblock stove-unlit-north)
- Tweak: The creative only rhodium items are now nickel
- Tweak: The world config fertilityRecoverySpeed no longer affects fertility recovery from fertilizer
- Tweak: More strongly attenuate lightning and thunder sounds while underground
- Tweak: /gm sp now puts the player back in 1st person mode if they were in 3rd person mode
- Tweak: Better positioning of the hover item info box when it moves out of the window area
- Tweak: Creatures now avoid walking into fire or boiling water
- Tweak: Added lots of missing translation entries. Updated community translations. Added Dutch translations.
- Tweak: Added many more translator credits and organized them alphabetically. If your name is in the credits and you don't want it to be, please contact us through email, support ticket, or Discord.
- Tweak: Worldgen errors are now logged to a separate, permanent log file, server-worldgen.txt for later inspection
- Tweak/Fixed: Added "sudo sysctl -w vm.max_map_count=262144" to install.sh to fix RAM issues on Linux
- Removed: Instanced grass/flower rendering. Fixes flower rendering bugs.
- Fixed: Changing sound output device broke many sounds
- Fixed: Game crashing on world load when the installation path contained curly braces
- Fixed: Game crashing with StackOverflowException when the VintageStoryLib.dll was not found. Now crashes with a more useful error.
- Fixed: Game crashing in multiple locations when the survival mod assets were not loaded
- Fixed: Sun rising in the evening when the survival mod was disabled
- Fixed: Using wrench in creative mode consumed durability
- Fixed: Tapestry in GUI mirrored, fixed wrong textures on the sides of tapestry
- Fixed: Link text alignment issues with centered fonts
- Fixed: Hacked locusts were despawning when out of player range
- Fixed: Lighting flashes in the cloud were not removed in some cases, causing permanent bright spots
- Fixed: Gui derp when right clicking a clay form twice
- Fixed: Potential crashes when knapping with stones that were also suitable for cave art
- Fixed: "Meta (Spawner)" gui creature selection derps
- Fixed: z-fighting on seraph hand when holding a forlon estoc
- Fixed: Group invite notification not received by players
- Fixed: A crash related to cloth sim
- Fixed: Wrong texture on part-baked and charred sunflower bread
- Fixed: No linebreak made by the text editor if there were no spaces to linebreak at
- Fixed: Wrong texture on the aged basket, added ruined basket as well
- Fixed: Able to overfill troughs using chutes
- Fixed: Should fix a server-side exception when a client crashes during connect
- Fixed: Game crashing when removing a cinematic camera point when there is no points, then re-adding a point
- Fixed: Incorrect particle collisions with clutter blocks
- Fixed: One occasional source of "Tried to get block outside generating chunks!" error in logs
- Fixed: Vintagehosting: Able to select a server version not compatible with vintagehosting
- Fixed: Issues with saving macros
- Fixed: Multiple issues with the move tool, amongst others clutter blocks not updating correctly as well as an issue when loading block entities client side
- Fixed: Chest animations borked
- Fixed: Animated blocks such as chests glowing if something else animated in camera view is glowing
- Fixed: Unknown decor blocks (e.g. from removed mods) were invisible. Now they display an unknown texture.
- Fixed: New world not starting if it can't find a suitable spawn location
- Fixed: Multiple issues when importing a schematic from a previously modded world
- Fixed: Prevent a very old bug where some chunks become completely black (=unlit) after reopening a savegame
- Fixed: Armorstands not having their items when placed from story schematics
- Fixed: Rare errors in logs reported by BETransient, on snow-covered Reeds blocks
-
Fixed: Multiple usability issues with display cases.
- Added a line on its purpose in the handbook
- Fixed interaction help not displayed
- Instead of executing the default interaction when right clicking with a unsuitable item/block it now displays an error to the player
- Fixed: Serious issue with cascaded ore bomb explosions somehow exploding multiple times causing extreme lag. Tweaked explosion smoked particles a bit.
- Fixed: Can no longer walk through claimed doors (technical info: Land claiming / Privilege testing when breaking, placing or using blocks is now synchronized to client)
- Fixed: One major cause of dark/unlit chunks (technical detail: fully dark chunks could result from errors (code exceptions) in worldgen in any of the worldgen passes before lighting is reached; now the world generator will normally attempt to continue with later passes including the lighting pass, while logging the error to new log file server-worldgen)
- Fixed: Exception when SHIFT clicking item from crafting output into a full inventory
- Fixed: Polar bears spawning in mountains
- Fixed: Game crashing when failing to connect a server
- Fixed: 0.5 second interval lag spikes when playing on a server with many players
- Fixed: Auroras visible where they shouldn't be
- Fixed: Added missing server side smithing recipe validation
- Fixed: Creative inventory sometimes not reacting to mouse clicks to pick up an item/block
- Fixed: Might fix issues with game stuck in the world loading/connecting screen
- Fixed: Window border settings not remembered after game restart
- Fixed: Wrong block breaking decals on bookshelves and clutter blocks
- Fixed: Server side block related commands not behaving correctly with meta blocks around (render meta blocks mode was not synced to server)
- Fixed: Should avoid a crash related to fruit trees
- Fixed: 2 server side exceptions near the world border
- Fixed: Should fix able to interact with claimed firepits, querns and barrels
- Fixed: Players in spectator mode were emitting light from held torches / respawn glow
- Fixed: Should fix client desync with ground storage, creating ghost items in the players inventory
- Fixed: Should fix HUD going invisible on MacOS \o/
- Fixed: Player stepping sound spam when other player stand on some blocks
- Fixed: Should fix players sometimes spawning inside blocks in new worlds
- Fixed: Missing/Incorrect translation entries
- Fixed: Modloader asking players to download missing dependencies on disabled mods
- Fixed: Wrong crafting texts on the barrel dialog
- Fixed: Creativegrass listed in the survival handbook
- Fixed: Some privileges being listed twice in serverconfig.json
- Fixed: Extremely old bug in world generation where a jarring climate edge generates near world borders
- Fixed: Snow accumulation (based on RainHeightMap) wrong if chiseled block atop another chiseled block
- Fixed: Player affected by wind while indoors with doors or leaded glass
- Fixed: Mitigate rendering issues with tallgrass against other blocks
- Fixed: Wrong coords from .copy posi
- Fixed: Crash in Creative mode if a still water block was placed in a barrel
- Fixed: Pink glass not coloring lantern light
- Fixed: Game crashing when displaying empty text links
- Fixed: Work items displayed in the handbook were invisible and a source of lag
- Fixed: Various rare crashes (technical info: a rare chunkdbthread crash when 3rd party mods attempt to store data, crash when taking Boiling water with a bucket, random ChunkDataLayer.GetGeneralCase null reference due to a rare race condition during palette compaction; on multiplayer servers EntitySimulation.SendEntitySpawns log spam if the connected client had no entityPlayer; BehaviorDoor accesssing GetLiquidBarrierOnSide during worldgen; BEGroundStorage attach block to side when no StorageProps set)
- Fixed: Earthball mushroom picked item texture incorrect
- Fixed: Water lilies blocking specular reflection
- Fixed: Polar bears spawning on mountains
- Fixed: 4th slice of pie not stacking
- Fixed: Mushroom stew in pot invisible
API Changes
The most significant change is a full command system rewrite. The old way of registering commands still works but is now marked obsolete. The new command system allows you to define commands using the Fluent interface design pattern, as well as have prebuilt argument parsers for you to choose from. The new syntax also allows us to automatically generate command syntax documentation \o/
I've continued my efforts towards more behavior-based programming of blocks and items. There is a new BlockGeneric and StrongBlockBehavior base class which forward more method calls. Where possible, I tried to add or rewrite code to use block behaviors or block entity behaviors - such as the new door code. Support for multiblock structures is also improved, evident by the new large multiblock doors. The player mounting system should also be significantly more robust and flexible, see also raft code. Adding Worldmap waypoint icons is now dead simple - just drop in an svg file in the right folder.
When a game world has loaded up, it will now print an error summary, so you no longer need to go searching trough the log files for errors. It looks like this when there are no errors:
14.2.2023 12:22:23 [Client Notification] ===============================================================
14.2.2023 12:22:23 [Client Notification] (^_^) No issues captured during startup
14.2.2023 12:22:23 [Client Notification] ===============================================================
Beyond that, there is the usual myriad of minor changes. Have a look:
- Feature: New "StrongBlockBehavior" base class. Has a greater range of callbacks.
- Feature: Block/Item Texture overlays now allows you to define a blend mode in json. For an example see assets\survival\blocktypes\wood\woodtyped\door.json. Available Modes: Normal, Darken, Lighten, Multiply, Screen, ColorDodge, ColorBurn, Overlay
- Feature: All waypoint icons are now loaded from svg files
- Feature: Story structure generation system. Allows generation of a very large schematic, once per world
- Feature: New side-agnostic api subsystem: api.ChatCommands
-
Feature: NPC dialogue system
- Can now add dialogue to any NPC with pure JSON
- Supports multiple response options, setting/reading of variables, giving and requesting items, playing sounds, and more
-
Tweak: Conversable behavior should now allow for customized conversations based on character class and npc personality. If will now try to load the conversation file in the following order:
- 1. convo-{charclass}-{personality}.json
- 2. convo-{charclass}.json
- 3. convo.json
- Feature: Added BlockEntity.OnExchanged() callback for block entities where blockAccessor.ExchangeBlock() was called on
- Feature: New Block.Activate() method. To be used for automation. Currently available for doors, trapdoors, fence gates and clutches, and Command blocks and Conditional blocks
- Feature: Added method ForceLandformAt() to GenMaps.cs. Allows one to override the landform in a given area.
- Feature: Added sapi.WorldManager.TestMapChunkExists and sapi.WorldManager.TestMapRegionExists
- Feature: Added new OnTestBlockAccess event to override land claiming behavior
- Feature: Added client side events MapRegionLoaded and MapRegionUnloaded
- Feature: BehaviorCanIgnite now will search for a IIgnitable interface in the block, block behavior, block entity and block entity behavior
- Feature: Added OnGetTemporalStability event to mod system "SystemTemporalStability"
- Feature: WorldgenHook block, triggers the specified worldgen hook (set by command /dev worldgenhook) when this block is placed by a schematic during worldgen
- Feature: Event.WorldgenHook and Event.TriggerWorldgenHook to run custom worldgen code at a particular position, triggered by something else for example placement of a specific block
- The default Worldgen hook is "genHookStructure <assetname>" which generates structure elements from schematics according to rules specified in the named file found in folder assets\survival\worldgen\hookgeneratedstructures
- Tweak: Added BlockEntity.OnPlacementBySchematic() method
- Tweak: Added IServerPlayer.InWorldAction event
- Tweak: The interfaces IMultiBlockMonolithicSmall, IMultiBlockMonolithic, IMultiBlockModular for multiblock behaviors can now also be implemented inside a BlockBehavior (previously only able to implement them in a Block class)
- Tweak: Added ability to supply a different crop model when grown on farmland, attribute onFarmlandShape (of type compositeshape)
- Tweak: Json patches now can be disabled via `enabled` property
- Tweak: Added helper method Block.GetBEBehavior()
- Tweak: Added helper method IBlockAccessor.GetInterface<T>()
- Tweak: Non-json files in blocktypes, entities and itemtypes are now ignored by the loader
- Refactor: "api.BlockTextureAtlas.AtlasTextureIds[0]" is now "api.BlockTextureAtlas.AtlasTexture[0].TextureId"
-
Refactor: Moved away several methods from the Block class
- Method Block.WildCardReplace now moved to extension method AssetLocation.WildCardReplace
- Methods Block.OnTryIgniteBlock and Block.OnTryIgniteBlockOver now moved to IIgnitable interface (make your class inherit from this interface and remove the override keyword to make it compatible again)
- Methods Block.SetWindFlag, Block.ClearWindFlags and Block.ToggleWindModeSetWindData are now extension methods of MeshData
- Refactor: Refactored meshing/transformation mechanism of BlockEntityDisplay class. Now caches content meshes amongst all blocks of the same class, instead of keeping a copy of every mesh for every block.
- Refactor: Added Tesselator.GetTextureSource() and marked GetTexSource() as obsolete
- Refactor: Gui Methods .AddButton() and .AddSmallButton() with orientation argument are now marked obsolete (simply remove the orientation arg from your code to fix)
- Refactor: Extracted AnimationUtil class out of BEBehaviorAnimatable to be used in more universal ways.
- Refactor: BEBehaviorAnimatable.InitializeAnimator() method reordered args
- Refactor: Clean up survival textures folder: moved several out of place textures into various folders
- Refactor: Removed last row in the elementTransforms uniform matrices for entity shape rendering, as its always 0 0 0 1, reduces upload overhead by 25%
- Refactor: BlockEntityShapeFromAttributes is now a block entity behavior. The block entities "Clutter" and "ClutterBookshelf" are thus no longer necessary and were removed
- Refactor: OnEntityDespawn event, renamed class of 2nd argument "EntityDespawnReason" to "EntityDespawnData" and uppercased its field
- Refactor: Breaking changes to IMountable interfaces. MountPosition property now needs to return a EntityPos instead of Vec3d, removed MountYaw property (set pos.Yaw instead). Added new property EnumMountAngleMode AngleMode. Added LocalEyePos property for a sitting entity you'd likely want to return something akin to "new Vec3f(0,1,0);"
- Refactor: Move snow cover related code from BEMicroBlock into BEBehaviorMicroblockSnowCover
- Refactor: Deleted SyncedEntityPos class. Moved the only useful field in there (LastReceivedClientPosition) to ServerPlayer.cs
- Refactor: GetClimateAt(), argument EnumGetClimateMode now defaults to NowValues instead of WorldGenValues
- Refactor: If you have meat-like items in your mod or use inFirePitProps, you'll have to readjust your transforms, as the firepit spit is now diagonally placed. Sorry.
- Refactor: ITreeGenerator interface: Moved most parameters into a new TreeGenParams class
- Refactor: Renamed IBlockEntityRotatable to IRotatable
- Refactor: Clean up GuiDialogHandbook code in preparation for use in a new command handbook
- Refactor: Client side world loading code - now all in one file instead of 6 different ones
- Refactor: Rename block.LiquidBarrierHeightOnSide() to block.GetLiquidBarrierHeightOnSide()
-
Refactor: Renamed the multiblock interfaces again and they no longer inherit from eachother, which made no sense. Renames:
- IMultiBlockMonolithicBasic => IMultiBlockColSelBoxes
- IMultiBlockNormal => IMultiBlockInteract
- IMultiBlockExtensive => IMultiBlockBlockBreaking
- New: IMultiBlockBlockProperties
- Refactor: For the server side event ChunkColumnGeneration. Changed delegate method arguments. Now passes on a single IChunkColumnGenerateRequest object containing the previous 4 arguments
- Tweak: Added guid field to Waypoints
- Tweak: Added OnHeldInteractCancel to CollectibleBehavior
- Tweak: All Wildcard matching util methods now accept * as Domain to ignore domain checking. Also works for the SearchItems and SearchBlocks methods. Also fixes spawner block dialog not showing modded creatures
- Tweak: Added LanguageCode field to TextCommandCallingArgs so its easier to respond with correctly translated strings server side via Lang.GetL()
- Tweak: BlockLayeredSlowDig class more moddable now
- Tweak: Server now keeps track of player placed or broken blocks for each chunk
- Tweak: Made some AStar stuff public/virtual
- Tweak: BlockEntityTeleporterBase.GetTarget() is now public
- Tweak: Server event CanPlaceOrBreak now comes with an additional claimant argument that must be null when the request is denied
- Tweak: Added OnBlockBrokenWith and OnBlockBreaking to CollectibleBehavior
- Tweak: Fixed missing server side verification of auction price
- Tweak: New entity callback OnAsyncParticleTick(). Lets you spawn per-+entity particles in a separate thread.
- Tweak: IBlockAccessor.WalkBlocks() now calls the callback method twice for the same position if there is a liquid in the fluids layer
- Tweak: Player head control rework. Now simplified code.
- Tweak: BlockWater now has json configurable ice block code and freezing point
- Tweak: Firewood piles now also use the new ground storable system. Fixed ground storable issues with TransferQuantity > 1
- Tweak: The game now logs a warning/error summary after startup
- Tweak: Ground storage json property TessQuantityElements is now marked obsolete, use property ModelItemsToStackSizeRatio instead
- Tweak: IMountable interface now requires 2 more properties CanControl and MountedBy
- Tweak: IMountableSupplier interface now requires property MountPoints
- Tweak: Massive flower assets overhaul. Moved all flower shape files from block/basic to block/plant/flower and removed redundant shapes.
- Tweak: Sign block: Writable width, amount of lines, font size, font style and text positioning is now json configurable
- Tweak: Transform editor now allows X-axis flipping
- Tweak: Added ICustomHandbookPageContent interface for blocks and items if they want to modify handbook text in code
- Tweak: New properties maxQuantityByGroup and spawnCapPlayerScaling for entity runtime spawn conditions
- Tweak: Less hardcoded sleeping system. Can now remove the tiredness behavior from players to disable sleeping mechanic.
- Tweak: If a block defines block entity behaviors in json but did not define a entity class, then it will now default to "BlockEntityGeneric"
- Tweak: Prevent the game crashing from invalid blocks
- Tweak: api.Event.MapRegionGeneration event, added argument "ITreeAttribute chunkGenParams = null"
- Tweak: New argument for "/wgen regen" to generate only one type of landform, e.g. "/wgen regen 3 veryflat"
- Tweak: Added chattype:// link protocol to add text to the clients chatbox
- Tweak: Handbook pages on items/blocks now show their page code if extended debug info is enabled (.edi)
- Internal: The ServerRedirect packet should correctly redirect the client now, untested and not available through the API yet
- Fixed: Code domain issue in BlockGenericTypedContainer.GetDecal
- Fixed: Particly registry not available through IClassRegistryAPI
- Fixed: Cairo graphics system printing not-disposed errors for unowned surfaces
- Fixed: Finally fixed generic chest blocktype texture oddities
- Fixed: Entity idleSoundRange not synced to client
- Fixed: Block Durability property not synced to client
- Fixed: Renamed container property "transitionSpeedMulByType" to simply "transitionSpeedMul" which should make it work as intended
- Fixed: Not able to make grid recipes with 2 liquids
- Fixed: "shelvable: false" showed up as shelvable in the handbook
- Fixed: Default value arg in player.GetModData() was ignored
- Fixed: MeshData.Clone() set incorrect values for VerticesMax and IndicesMax, potentially causing any future operations on the mesh to crash due to being out of bounds.
- Fixed: Entities imported from schematics sometimes had a wrong offset on them
- Fixed: Fixed StackOverflow in mapregion.SetModData<T>()
- Fixed: structures.json, Schematics property not respecting mod domains
- Fixed: ~150 XML Doc warnings. Moved method BehaviorArtPigment.BlockSelectionToSubPosition() to BlockSel.ToDecorSubPosition()
- Removed: "Modular" multiblock type. Was never implemented and not really useful either. Saves 150 block ids.
Updates since rc.8
- Tweak: Added a new property to schematics, EntranceRotation (0,90,180,270) to define where an entrance is, so at worldgen the optimal side is chosen when placing, works only for Surface and SurfaceRuin placement
- Tweak: mitigate visual borders between low and medium fertility soil during worldgen by reducing the chances it can generate as such
- Tweak: "Metal parts" model changed. Metal parts and scrap are now ground-storable.
- Fixed: Rare crash when right-clicking books and other in-hand items while near doors
- Fixed: Small oiledhide 2x, 3x and 4x recipes impossible to craft
- Fixed Omok placement off by 1
- Fixed "ranged charge time" instead of "ranged charge speed"
- Fixed: Recipe output showing wrong amounts in handbook
- Fixed: A crash in the corpse return teleporter
- Fixed: Z-Fighting on rush mat
- Fixed: Some parts invisible during animation of the death point return teleporter
- Fixed: Lava no longer flowing
- Fixed: Exception thrown when placing red top grass planters (added placeholder texture for now)
- Fixed: Able to continue gliding when removing the glider mid-flight
- Fixed: Rare crash introduced in rc8
- Fixed: Should address /player [name] wipedata not wiping some player data
- Api Fixed: Lang.HasTranslation() did not recognize some entries
-
25
-
1
-
4
-
2
-
7