Release Notes 1.1

Release 1.1 includes features developed from roughly June 9 2020 to August 24 2020.

Highlights

New Free Features

The following features are now also available in Free!

  • Voxel Data Asset Editor: double click any voxel data asset to open the editor. You can create data assets simply by right clicking in the content browser!

  • Voxel Asset Actors: easily place your data assets into the scene by drag & dropping them

  • Voxel Erosion: experimental erosion shader for heightmaps

  • Voxel Disable Edit Box: use this to disable edits in a zone of your world

  • Perlin Worms: used for caves

  • Terrace: blueprint node for the surface tool, allowing to make terraces

Additionally, the annoying "Get Voxel Plugin Pro" notifications have been replaced by a one time "Thanks for using Voxel Plugin Free".

Community Contributions

I would like to thank the increasing number of people helping new users on the discord. The plugin discord has really grown into something awesome!

If you're not already on the discord, join now! https://discord.voxelplugin.com

I also want to thank all the people who submitted issues & suggestions on the github. These are incredibly helpful!

If you have a suggestion, or want to report an issue, got ahead on https://github.com/Phyronnaz/VoxelPlugin/issues!

New automated pipeline

I've setup a Jenkins server that builds Free and Pro every 6 hours.

https://github.com/Phyronnaz/VoxelPlugin and https://gitlab.com/Phyronnaz/VoxelPluginPro are now automatically updated & are always guaranteed to compile on all supported Unreal versions & platforms!

I will of course continue to update the marketplace versions as well.

New mailing list

If you want to never miss any Voxel Plugin release, I've setup a new mailing list! You can subscribe here: https://updates.voxelplugin.com

Upgrade Notes

If you used the Import Asset as reference feature in the editor, your old saves might only partially load. You will get a warning message if that's the case; please contact me if you need to recover that data.

C++

Many more inline files (.inl) have been added. If you get a missing symbol error, you're probably missing an include!

If you're using FVoxelData directly, you now need to include VoxelData/VoxelDataIncludes.h.

Voxel containers have been moved to a new VoxelContainers directory.

World Generator Instances now need to call their parents in their constructor. It is valid to pass nullptr

Old:

class FVoxelFlatWorldGeneratorInstance : public TVoxelWorldGeneratorInstanceHelper<FVoxelFlatWorldGeneratorInstance, UVoxelFlatWorldGenerator>
{
public:
    explicit FVoxelFlatWorldGeneratorInstance(UVoxelFlatWorldGenerator& Object)

New:

class FVoxelFlatWorldGeneratorInstance : public TVoxelWorldGeneratorInstanceHelper<FVoxelFlatWorldGeneratorInstance, UVoxelFlatWorldGenerator>
{
public:
    using Super = TVoxelWorldGeneratorInstanceHelper<FVoxelFlatWorldGeneratorInstance, UVoxelFlatWorldGenerator>;

    explicit FVoxelFlatWorldGeneratorInstance(UVoxelFlatWorldGenerator& Object)
        : Super(&Object)

Compiled Voxel Graphs

If you compiled some voxel graphs to C++, you might get this popup when you open your project with the next plugin version:

To fix it, just delete your Binaries and Intermediates folders in your project, to force a recompile of the generated cpp.

Changes

Tool Improvements

The tool manager has been refactored to be easier to use, maintain and extend.

UX improvements

The voxel tools now support shortcuts:

  • 1-8 (alphanum): select tools

  • [ ]: decrease/increase brush size

  • < >: decrease/increase brush strength

You can configure these shortcuts at any time in Edit/Editor Preferences/Keyboard Shortcuts/Voxel.

Instead of a dropdown, the tools are now displayed as icons, making it easier to switch tools:

Experimental support for the new 4.25 toolbar has been added

Adding custom tools

You can now add custom voxel tools to the list of editor tools

Checkout Voxel/Examples/Tools/CustomTools for an example

Directly applying tools

You can now directly apply a voxel tool from a blueprint.

This is very easy to use, as you can just set the tool property as you would in the editor, and tell it where to be applied.

For example, this blueprint creates a Mesh Tool, sets it mesh & size, and finally apply it (which results in stamping the mesh):

Tools Performance

A new Multi Threaded option has been added to the tools (on by default). This makes all tools several times faster.

The smooth/progressive mesh stamp & the surface tool are now using a proper Jump Flood compute shader, making them much faster & much more accurate.

Smooth Improvements

Smooth now has a Num Iterations parameter, and has been optimized to be several times faster (in addition to multithreading).

A new Falloff parameter has also been added

Material Propagation

Thanks to jump flooding, materials can now be propagated when using the surface or mesh tool. Just tick the Propagate Materials checkbox.

This feature should be a game changer for painting in the plugin!

https://twitter.com/phyronnaz/status/1283670427257016320

Fixed Rotation option on the Flatten Tool

The Flatten tool has a new Fixed Rotation parameter to lock the direction it's facing

Perlin Worms/Splines (Data Items) redesign

A new concept has been added to the plugin: Data Items.

A big limitation of voxel graphs is that you don't have any contextual data: you can add noise, but it's very hard to add a ravine or a cave at a specific position.

To solve that, I'm introducing the concept of Data Items: these are data that you can place into your scene and can read back into your graph.

They are extremely generic (just data), so they can be used to create ravines, perlin worms, tunnels using splines, mountains...

Builtin data items are included in /Voxel/VoxelDataItems/

Usage examples are included in /Voxel/Examples/VoxelGraphs/PerlinWorms

You can find more info on their dedicated doc page: Voxel Data Items

Docs improvements

The Blueprint API docs are now automatically generated. Same for the C++ API docs.

You can check them out here:

Scale World Data

You can now rescale an edited voxel world in the editor. This can be useful if you want to change your voxel size while keeping the relative size of your edits for example.

The option is under Voxel - Preview in the voxel world details.

New HardColorTransitions setting

A new HardColorTransitions setting has been added. It will add additional vertices in the RGB mode to ensure all transitions are sharp:

Off:

On:

Voxel Foliage settings are automatically applied

When changing a setting on a voxel spawner used by the voxel world, the voxel world spawners will regenerate to apply that setting.

This is a huge productivity boost to quickly iterate on settings.

If it becomes too slow, you can disable it in the voxel world preview settings.

https://twitter.com/phyronnaz/status/1287348345145421825

Mesh Importer improvements

You can now configure the sweep direction, whether a mesh is watertight or not, and whether to hide leaks or not in the mesh importer settings (and in the mesh tool).

These settings allows to import a larger variety of meshes. Check the options tooltips for more info.

For example, say you want to import this mesh:

Watertight on + sweep direction = X (used to be the only option):

Watertight off + sweep direction = Z:

New Examples

Heightmap Composition

In VoxelContent\Examples\VoxelGraphs\HeightmapComposition

This example shows how to make a voxel graph combining 4 heightmaps together.

Layered World

In VoxelContent\Examples\VoxelGraphs\PerlinWorms

These examples show how to use the new perlin worms to make a flat & a planet world with plenty of caves.

Voxel Graph Improvements

2D Graph Preview & Stats improvements

The graph preview is now a lot more user-friendly!

You can now pan the graph preview (by holding right click), zoom (using the mouse wheel), and preview the node values of a specific voxel by clicking the preview!

The stats have also been improved: they now show the timings of the nodes on the previewed voxel.

Four stats are showed:

  • C++: this is the time the node will take to execute once the graph is compiled to C++

  • VM: this is the time the node will take to execute in the voxel graph virtual machine

  • C++ (range): this is the time the node will take to execute in Range Analysis once compiled to C++. Range analysis is not performance-critical if you're not using the Get Range node

  • VM (range): this is the time the node will take to execute in Range Analysis in the voxel graph VM. Range analysis is not performance-critical if you're not using the Get Range node

Technical details

The C++ value is obtained by calling the function directly (not through a vcall) N time until it takes >1ms to run. This gives coherent results, as it will simulate a hot cache & no call overhead.

The voxel graph VM value is obtained by doing the same thing, except through a function pointer. That way the compiler cannot inline the function.

Finally, the voxel graph preview is now fully multithreaded, making it several times faster!

3D Graph Preview improvements

In addition to the classic Heightmap 3D preview:

the voxel graph can now do more advanced previews. To enable that, untick Heightmap Mode in the preview settings

Switch the axes to the following to show a 2D slice

Finally switch to 2D preview color to Material

This will show you a 2D slice of your voxel graph:

You can configure the slice position by changing the Center property in the preview settings:

Combined with the new perlin worms/data item debug, it's a very powerful tool to get a 3D view of your world. In the video below you can see the perlin worms & the holes they create in the planet:

New Cost view

A new Cost view mode has been added

It will show the cost of querying each voxel, normalized from green to red:

Here you can see the places where perlin worms intersect are more expensive to query, as there are more worms to query.

The corresponding timings will be showed in the preview info:

Technical note: by default, the 5% lowest and the 5% highest values are ignored for Min/Max, due to too much variability. You can change that using the Cost Percentile property.

New Range Analysis view

A new Range Analysis view mode has been added as well.

It will divide the preview in a number of chunks (by default 64x64), and show green if the chunk would be skipped thanks to range analysis (ie, 0 not in the chunk range), and red if it wouldn't be skipped.

For example, in the new Heightmap Composition example:

Automatic Function Separators pins

Function separators pins are now automatically filled during compilation!

Before, you had to manually add pins to forward your values:

Now you can just add a function separator node & let the graph compiler do the work!

Improved noise node range analysis

Noise nodes now have a Tolerance setting in their range analysis:

When added, they will be sampled Number Of Samples times to get a range of the noise values. Then, that range will be extended by Tolerance to account for the potentially missed values.

Finally, at runtime, the noise values will be clamped between these ranges, to ensure range analysis is always correct.

This means that some noise might now appear flat: if that happens, increase Tolerance. The upside is that since range analysis will always be correct, you cannot have holes anymore due to too noisy noise.

Get Range node & Smart Min/Smart Max

A new Get Range node has been added, to query the estimated range of a pin at runtime (guaranteed to never underestimate).

A new Smart Max (as well as a Smart Min) node has been added. It will first compute the range of all its input, and then only compute the ones truly needed based on that:

all the inputs whose range max is inferior to one of the other input range min can safely be ignored.

That way, it can skip computing some expensive noise, like in the graph below.

Sadly, the Get Range node turned out to be much more expensive than expected. I would only recommend using Smart Min/Max in graph compiled to C++ (where the overhead of GetRange is much lower), and after some benchmarking to check it's not tanking the performance.

Make Seeds node

A new Make Seeds node has been added: it will create a number of unique seeds from a single one, by successively hashing them.

Quality of life improvements

Drag & dropping an asset onto a graph will now use the asset name:

Create local variable now defaults to the pin name:

Electronic Nodes support

The Electronic Nodes plugin now supports voxel graphs! Big thanks to the dev for working on that.

https://unrealengine.com/marketplace/en-US/product/electronic-nodes

Autogenerated Tool API

The tool functions (AddSphere/RemoveSphere etc) are now automatically generated from the C++ templates.

This allows to have a very consistent API across all tools functions, while decreasing the maintenance cost.

All tool functions now take the Multi Threaded and Update Render parameter.

Additionally, they all output Modified Values, which can be useful for detecting mined materials among other things. Recording modified values is not cheap, so you can disable it by setting Record Modified Values to false.

They also output Edited Bounds, which can be used to know on which bounds to call Apply Voxel Physics for example.

On the C++ side, C++-friendly functions are generated. The async variants take a proper C++ callback in input.

For example:

    /**
     * Set the density in a sphere
     * @see SetValueSphere, SetValueSphereAsync and FVoxelSphereToolsImpl::SetValueSphere
     * @param   VoxelWorld              The voxel world to do the edit to
     * @param   Position                The position of the center. In world space (unreal units) if bConvertToVoxelSpace is true. In voxel space if false.
     * @param   Radius                  The radius. In unreal units if bConvertToVoxelSpace is true. In voxels if false.
     * @param   Value                   The density to set
     * @param   OutModifiedValues       Optional. Record the Values modified by this function. Useful to track the amount of edit done, for instance to give resources when digging. Will append to existing values.
     * @param   OutEditedBounds         Optional. Returns the bounds edited by this function
     * @param   bMultiThreaded          If true, multiple threads will be used to make the edit faster.
     * @param   bConvertToVoxelSpace    If true, Position and Radius will be converted to voxel space. Else they will be used directly.
     * @param   bUpdateRender           If false, will only edit the data and not update the render. Rarely needed.
    */
    static void SetValueSphere(
        AVoxelWorld* VoxelWorld,
        const FVector& Position,
        float Radius,
        float Value,
        TArray<FModifiedVoxelValue>* OutModifiedValues = nullptr,
        FVoxelIntBox* OutEditedBounds = nullptr,
        bool bMultiThreaded = true,
        bool bConvertToVoxelSpace = true,
        bool bUpdateRender = true);

    /**
     * Set the density in a sphere
     * Runs asynchronously in a background thread
     * @see SetValueSphere, SetValueSphereAsync and FVoxelSphereToolsImpl::SetValueSphere
     * @param   VoxelWorld              The voxel world to do the edit to
     * @param   Position                The position of the center. In world space (unreal units) if bConvertToVoxelSpace is true. In voxel space if false.
     * @param   Radius                  The radius. In unreal units if bConvertToVoxelSpace is true. In voxels if false.
     * @param   Value                   The density to set
     * @param   Callback                Called on the game thread when the function is completed. Will not be called if the async function completes after the voxel world is destroyed.
     * @param   OutEditedBounds         Optional. Returns the bounds edited by this function
     * @param   bMultiThreaded          If true, multiple threads will be used to make the edit faster. Not recommended on async functions, as it might cause lag.
     * @param   bRecordModifiedValues   If false, will not fill ModifiedValues, making the edit faster.
     * @param   bConvertToVoxelSpace    If true, Position and Radius will be converted to voxel space. Else they will be used directly.
     * @param   bUpdateRender           If false, will only edit the data and not update the render. Rarely needed.
    */
    static void SetValueSphereAsync(
        AVoxelWorld* VoxelWorld,
        const FVector& Position,
        float Radius,
        float Value,
        const FOnVoxelToolComplete_WithModifiedValues& Callback = {},
        FVoxelIntBox* OutEditedBounds = nullptr,
        bool bMultiThreaded = false,
        bool bRecordModifiedValues = true,
        bool bConvertToVoxelSpace = true,
        bool bUpdateRender = true);

You can view the full code here: https://github.com/Phyronnaz/VoxelPlugin/blob/master/Source/Voxel/Public/VoxelTools/Gen/VoxelSphereTools.h

Per-channel material compression

The voxel materials are now compressed per-channel in memory, leading the memory improvements of up to 10x (1000%)!

If you have a chunk whose materials have only their R component edited, it will only take 4KB + 1B * NumOtherChannels (chunks are 4096 voxels), whereas before it would take 4 * NumChannel KB.

When painting, all the channels are unpacked for better performance. You can call CheckForSingleMaterials to compress them back (this is automatically done by voxel tools).

https://wiki.voxelplugin.com/Blueprint_API#Check_for_Single_Materials

Distance Fields improvements

The plugin now uses the Jump Flood algorithm for fast & more precise distance fields computation.

Distance fields are used when using the surface tool or the mesh tool with progressive or smooth stamp on.

A new Voxel Debug window has been added to help visualize mesh distance fields. It can be accessed in Window -> Developer Tools

Open on Startup

To speed up iteration when developing the plugin, I've added a new Open On Startup context menu option that will automatically open the asset when Unreal starts.

You can enable it in Editor Preferences -> Open Assets On Startup

Static Collision Cooking

You can now cook all the collisions of a voxel world & save it to a binary file. That file can then be loaded to very quickly apply voxel collisions.

This does not support runtime edits.

Mainly useful for slow servers where startup performance matters & where voxel worlds cannot be edited.

See https://wiki.voxelplugin.com/Blueprint_API#Cooking

Misc

Merge PR from RobertBiehl to fix crash in Voxel Niagara getters

Turn off Bottom Textures in the Quixel example to mitigate a 4.25 DX12 crash

Fix Diplacement being typoed Dipacement in Quixel examples, making the setting not work on instances

Fix graphs with color outputs not compiling to C++

Fix rare crash on shutdown due to the global pool being destroyed too late

Voxel versions have been split per feature, to reduce asset changes when updating the plugin

You can now save/load voxel save & heightmaps that are bigger than 2GB in memory

Height range mips are now serialized to speed up heightmaps load time by several times

Fix voxel invokers Disable function not setting the bIsInvokerEnabled proper

Properly serialized asset references in voxel saves

Add SwitchColor node

VoxelCharacter has been simplified to be easier to implement without inheriting from it, and with no dependency on the Voxel module: https://github.com/Phyronnaz/VoxelPlugin/blob/master/Source/Voxel/Public/VoxelCharacter.h#L15

You can now force a spawner to spawn everywhere, and query its positions with GetMeshSpawnerTransforms: https://gitlab.com/Phyronnaz/VoxelPluginPro/-/blob/master/Source/Voxel/Public/VoxelSpawners/IVoxelSpawnerManager.h#L24 https://gitlab.com/Phyronnaz/VoxelPluginPro/-/blob/master/Source/Voxel/Public/VoxelSpawners/VoxelSpawnerConfig.h#L189

Commits

✨ Allow cooking/loading voxel world collision data
♻ Remove old UsingCustomVersion
✨ Add FVoxelData::ParallelSet
✨ Allow painting when using smooth/progressive stamp
✨ Add fixed rotation option to flatten
🐛 Fix 4.24+
✨ Add MakeVoxelCookingSettingsFromVoxelWorld
🐛 Fix cooking voxel size & seeds
🐛 Fix Spawn Voxel Actor by Instance Index
Merge branch 'master' of gitlab.com:Phyronnaz/VoxelPluginProBeta
🐛 Merge PR 39 from RobertBiehl: VoxelNiagara: Fix crash in Getters
🐛 Fix double precision
🐛 Change Bottom Textures default value to false to mitigate 4.25 crash
Update README.md
🐛 Fix dispacement typo
Merge branch 'master' of gitlab.com:Phyronnaz/VoxelPluginProBeta
🐛 Fix color outputs not compiling
🐛 Fix doxyfile for linux
🐛 Fix FVoxelLandscapeImporterDetails
🐛 Fix another linux bug
✨ Start new tool system
Revert "✨ Start new tool system"
✨ Move surface tool to new system
✨ Add tools commands
✨ Add VoxelToolWithAlignment & VoxelSphereToolBase
✨ Add revert tool to new tool system
✨ Migrate flatten tool
✨ Migrate trim tool
✨ Migrate smooth tool
✨ Migrate level tool
✨ Add smooth falloff & add fast smooth mode
✨ Multithread smooth to make it much faster
✨ Migrate mesh tool to new system
✨ Add dummy icons
✨ Speed up FVoxelMaterialBuilder initialization
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
🐛 Fix mesh tool when subtracting without smooth/progressive stamp
🐛 Fix rare pool destructor order bug
✨ Cleanup editor tools layout
✨ Rename Radius to brush size & add shortcuts
✨ Apply ShowForMaterialConfigs
✨ Add popup explaining voxel shortcuts
Revert "Revert "✨ Start new tool system""
Merge branch 'feature/NewToolSystem'
✨ Hide combo box
♻ Remove old tool manager
✨ Update the simple controller
🐛 Fix 4.25 warnings
✨ Add basic support for 4.25 editor modes
🐛 Fix 4.23
✨ Automatically generate tool functions
🐛 Add missing enum redirects
✨ Add BlueprintDocGenerator
♻ Export FVoxelEventManager
✨ Add scale world data
♻ Add missing comment
♻ Add many more .inl
🐛 Fix packaging
✨ Auto generate box tools
✨ Multithread more tools
✨ Auto generate level tools
✨ Multithread mesh tool
🐛 Fix icons
✨ Compress materials per channel & remove FVoxelFoliage for ~10x memory savings
♻ Split FVoxelCustomVersion to avoid changing all voxel assets every time one gets a new version
🐛 Fix linux packaging
✨ Support serialization of voxel save & heightmaps bigger than 2GB
✨ Add ShowAllChunksEmptyStates and don't show empty chunks in ShowChunksEmptyStates
✨ Serialize heightmap range mips to speed up loading
✨ Generate nicer C++ functions for tools
🐛 Fix painting overflow
🐛 Fix generated tools bounds
♻ Move VoxelDistanceFieldShader.h to Public
✨ Add voxel debug window to debug distance fields
✨ Add jump flooding compute shader
✨ Switch distance fields to jump flooding
🐛 Fix voxel invokers bIsInvokerEnabled
✨ Add material propagation to the surface tool
🐛 Fix scaling by not comparing against the generator
🐛 Fix bFasterWithoutUnity warnings
🐛 Fix more 4.24 warnings
♻ Export voxel graph schema to support eletronic nodes
Merge branch 'master' of gitlab.com:Phyronnaz/VoxelPluginProBeta
🐛 Fix crash with multi index when UV 2 or 3 are enabled
♻ Start cleaning up placeable items
✨ Properly serialize placeable items object references
♻ Add ReconstructNode meta
✨ Add Voxel Data Items
🐛 Fix range analysis bug when dividing by 0
✨ Add placeable items counters
✨ Reuse data items generators
✨ Improve data items range analysis
🐛 Fix ReconstructNode
✨ Add hybrid material preview in voxel graphs
✨ Add SwitchColor node
✨ Add voxel.data.ShowPlaceableItemsChunks
🐛 Fix placeable items threshold
✨ Add bHardColorTransitions
✨ Simplify VoxelCharacter
🐛 Fix DPI issue with editor tools
♻ Add TODO PLACEABLE ITEMS
🐛 Fix shipping build
✨ Automatically refresh spawners when a setting is changed
♻ Rename EVoxelDirection to EVoxelDirectionFlag
✨ Make the mesh importer work with non-watertight meshes
✨ Make the mesh importer sweep direction configurable
♻ Add VoxelContainers directory
🐛 Fix auto updates of InstancedMaterialCollectionInstance
🐛 Fix ensure when deleting previewed node
✨ Add GetRange node
✨ Start work on SmartMin/SmartMax nodes
✨ Add Cost graph preview type
✨ Improve stats messages
✨ Slightly better thread local paths
✨ Automatically fill FunctionSeparators pins
✨ Improve noise range analysis
✨ Add VoxelPlaceableItemManager
✨Add VoxelWorldCreateInfo
✨Add support for placeable items in graph preview
✨ Add VoxelMathLibrary
✨ Add GetMeshSpawnerTransforms
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
🐛 Remove too aggressive slack asserts
🐛 Fix Potential divide by 0 errors
🐛 Fix surface tool ensure
🐛 Switch ensure to ensureVoxelSlow
✨ Multithread graph preview
✨ Add -OPEN_ASSETS
✨ Add voxel graph preview zoom & pan
✨ Add back AddWorms
♻ Remove old graph stats & range analysis debug
✨ Add range analysis debug view
🐛 Fix gradient perturb range analysis
🐛 Fix rare heightmap crash
Allow previewing a voxel by clicking on the graph preview
🐛 Fix missing #endif
✨ Automatically set graph parameter names based on the asset when drag & dropping them
✨ Hide macros from world generator picker
🐛 Fix rare voxel graph dependencies bug
✨ Add bShowAxisDependencies to the debug graph
🐛 Fix crash when viewing material/color range
✨ Add OpenAssetsOnStartup context menu
✨ Add IsSingleBool graph node for range analysis
🐛 Fix heightmap range analysis
🐛 Fix heightmap graph node range analysis
✨ Default local variables name to the pin they are dragged from
✨ Add NumRangeAnalysisChunksPerAxis setting to graph preview
✨ Improve Show Stats/Show Values behavior
🐛 Fix Open Assets On Startup
✨ Also show constant nodes values
✨ Add heightmap composition example
🐛 Fix rare seed bug
✨ Improve 3D graph preview
🐛 Fix crash when no manager
✨ Add Make Seeds node
🐛 Fix crash in placeable item manager
🐛 Fix data item parameters/sampler C++ translation
✨ Add layered world examples
🐛 Fix heightmap mode 3D preview rotation
✨ Add scripts folder
🐛 Fix android packaging
♻ Update build scripts
Add version
✨ Add version script
🐛 Fix errorlevel handling
Add version
Add version
🐛 Try to fixup encoding
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
🐛 Avoid recursive versions
Jenkins: Add version
🐛 More script fixes
Jenkins: Add version
🐛 Fix more spaces issues
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
♻ Script stuff
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
🐛 Fix uplugin formatting
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
🐛 Fix another spacing problem
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
🐛 Disable unity build when packaging
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
🐛 Fix missing includes
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
Jenkins: Add version
♻ Update version script to use release branch
♻ More script tuning
♻ Update
🐛 Fix android packaging on 4.25
🐛 Fix 4.25 build script
🐛 Fix free
🐛 Fix packaging warnings
✨ Improve the tool manager C++ interface
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
🐛 Fix 4.25 packaging
🐛 Fix tool alignment
✨ Add Apply Tool
🐛 Disable shadows on tool meshes
✨ Add EditedBounds output to voxel tool functions
✨ Allow making custom tools in blueprints
♻ Default AddMultiIndex strength to 1
🐛 Fix build
🐛 Fix noise seeds without breaking existing projects
✨Generate docs automatically
🐛 Fix version popup
♻ Checkout master when done
♻ Fix docs script
🐛 Fix doc scripts
🐛 Fix sh script
🐛 Fix version
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
✨ Automatically update BP API
♻ Add ANY_VERSION
Merge branch 'master' of github.com:Phyronnaz/VoxelPrivate
🐛 Fix previous
✨ Add deploy script
♻ Update script
♻ Update script
♻ Update readme
♻ Move deploy scripts to own directory
♻  Rename txt to md
🐛 Fix FilterPlugin.ini
🐛 Fix uplugin beta engine version
🐛 Fix range analysis reporting in macros
♻ Add sync script
✨ Add ShowValue/ShowRange/ShowValueAndRange setting to voxel graph preview
🐛 Fix crash when deleting voxel world in editor
✨ Add Voxel Plugin Updated notification
✨ Make asset tools available in Free
✨ Make voxel asset actors available in Free
✨ Make disable edits box available in Free
✨ Make voxel erosion available in Free
✨ Make perlin worms available in Free
✨ Make the voxel data asset editor available in Free
✨ Make terrace available in Free
✨ Replace Pro Only notifications by a one time notification
🐛 Fix crash when cutting Voxel World
🐛 Fix crash in voxel graph preview

Last updated