1. Neos VR
  2. News

Neos VR News

2021.10.17.1326 - Improved text editing, bugfixes, Minecraft2Neos importer tool

Hello everyone! Sorry again for lack of builds, with all the craziness around MMC it's a bit difficult to find time to work on them, but here's a bunch of goodies and fixes! Notably there's some improvements to text editing.

I've also done some internal refactoring to a bunch of things, including separating logic for running headless so it's easy to write code to do batch operations to worlds and other engine operations. To test it out I wrapped a functionality of the Minecraft import support into a nice standalone tool that makes it pretty hassle free to import Minecraft worlds to your account! It's also very simple, under 100 lines of code (the source is open, you can check it out below).

Also adding MMC21 badges to the build. They're not assigned yet, we're still working on that and it's going to take a bit, but this is just so the build is ready for them.

Also this build is compatible with previous.

[h2]New Features:[/h2]
- Added MMC21 badge support
-- The badges haven't been assigned to users yet, but this build is necessary so they show up once we assign them)
- Added support for new text editing shortcuts (based on request by @Gawdl3y, GH #1784)
-- Ctrl + Backspace -> deletes to the previous word boundary
-- Ctrl + Del -> deletes to the next word boundary
-- Ctrl + Shift + Backspace -> deletes the whole line before the cursor
-- Ctrl + Shift + Del -> deletes the whole line after the cursor
-- Ctrl + Left/Right -> moves cursor to the previous/next word boundary
-- Ctrl + SHift + Left/Right -> expands selection to the previous/next word boundary
- Added initial support for 2FA login on auth.neos.com (based on report by @Shifty | Quality Control Lead and @VbunnyGo#5669)
- Added standalone tool to automatically import/sync Minecraft world to your Neos account
-- Can be found under Tools/Minecraft2Neos/Mc2Neos.exe
-- To run it, simply pass it a path to a Minecraft map folder, or folder containing multiple maps (it'll import/sync all)
-- It will ask you to login to your account. You can also login automatically by passing -login -password on the command-line
-- Mineways needs to be installed in Program Files for it to work
-- This is completely hassle free - for each Minecraft map it will create a corresponding world if it doesn't exist or update it in-place
--- It uses tags to match the world - they are matched by the folder name
-- Re-running it on already imported map should automatically update only the modified chunks
-- This was implemented in part to test some of the internal refactoring. The program itself is very simple and under 100 lines of code:
--- https://github.com/Neos-Metaverse/Minecraft2Neos/blob/master/MC2Neos/Program.cs

[h2]Tweaks:[/h2]
- "Apply to Hit" now only applies character collider changes to colliders specifically on the hit slot, rather than also the ones in the children (based on feedback by @Shifty | Quality Control Lead, implemented by @ProbablePrime | Docs, GH #3176)
- Pressing Left/Right while a text is selected now places the caret at the beginning/end of the selection, rather than jumping left/right from it's current position (based on feedback by @Psychpsyo, GH #3201)
- Unpublishing inventory folder will no longer unpublish other public folders that are placed within as links (reported by @3x1t_5tyl3, GH #3205)
- Tweaked cloud background worker to make record preprocessing more reliable for more complex records (with thousands of assets)
- Merged Korean locale update by @MirPASEC
- Merged Spanish locale additions by @Ruz
- Merged Finnish locale update by Ducky07
- Merged Russian locale update by @Shadow Panther [RU/EN, UTC+3]
- Merged Czech locale update by @rampa_3 (UTC +1, DST UTC +2)

[h2]Security:[/h2]
- Public Folders now respect spawn permissions (based on report by @AshtonSparx, GH #2603, fixed by @ProbablePrime | Docs)
- Avatar Creator can now only be spawned and used by users with the Builder role, rather than guest (based on report by @Psychpsyo, @Sloppy McFloppy, @epicEaston197, GH #3134)
- Fixed ViewReferenceController causing a world crash when some of its dependent objects/components are removed (reported by dmx, Moderation Ticket #658646)

[h2]Bugfixes:[/h2]
- Fixed RemoteConnectionPointDriver throwing exceptions when only some of the drives are assigned
- Fixed Interactive Camera in a Camera Anchor being rapidly included and excluded from rendering
-- This fixes uncessary amount of network traffic being generated while the camera is in the anchor
-- This also fixes any filters on the camera from flashing rapidly (reported by @orange, GH #3174)

2021.10.11.1175 - DataPreset "SetValues", fixes for dynamic variable spaces...

Hello everyone! I got a new build for you, just a small one to push a few smaller additions, improvements and bugfixes. I didn't have much time to work on builds over past week or so as I was busy checking out every single MMC entry as one of the judges (there's so much cool stuff you've made!) and it'll be still a bit difficult in the upcoming days as we'll be finalizing the judging, but hopefully I'll pick up on pushing out builds again slowly.

Notably handling of capturing in-game photos is a bit better now - e.g. when you're a spectator and the photo cannot spawn, it'll still be auto-saved to your inventory if you have that enabled!

Also fixed up some more issues with dynamic variable spaces not initializing variables or resets properly.


[h2]New Features:[/h2]
- Added "SetValues" impulse target to DataPreset, which will load up the current values/targets from the target fields/references (requested by @Nordwig, GH #3161)
- Added "Apply to object root" option to a number of builder tooltips (implemented by @ProbablePrime | Docs, based on feedback by @Turk, @Shifty | Quality Control Lead GH #3128)
-- Following tooltips were updated: CharacterCollider, MeshVisbility, ComponentClone, CameraExclude, Slicer
- Added "Last Visit" as advanced sorting parameter in the world list
-- Note that this currently only sorts already fetched records - it won't fetch more records based on your actual history at the moment.
- Added ability to easily add/remove event badges by the team (implemented by @ProbablePrime | Docs)
-- This will allow faster responses when requesting an event badge (e.g. MMC, VBLFC and so on to be removed or added when missing)

[h2]Tweaks:[/h2]
- When capturing photos (either with InteractiveCamera or gesture photo) in scenarios where they can't be (or are configured not to) spawned in the world, they're temporarily spawned locally and processed as usual
-- E.g. if you have auto-saving configured, they will be automatically saved into your inventory, even if you're spectator with spawning disabled
- When exporting/saving screenshots in-game, they will use the timestamp of the capture, rather than timestamp at the time of hitting the button
- Added check if Neos is running under Wine/Proton, to automatically disable the desktop support due to causing crashes (based on suggestion by @Enverex, @blythwack, @Yellow and others)

- Merged Czech locale additions by @rampa_3 (UTC +1, DST UTC +2)
- Merged Japanese locale update by @Aesc/あすく

[h2]Bugfixes:[/h2]
- Fixed AdminX and other .NET Core/5+ based Neos utilities not processing compressed API responses properly
-- This fixes not being able to login into AdminX (reported by @Raith | Programmer)
- Fixed DynamicVariableSpace not initializing its name on load, resulting in various other behaviors that run OnLoad not working if they require accessing a named space
-- E.g. this fixes DynamicValueVariableReset not reseting when ResetOnLoad is enabled and it's loaded together with a named dynamic variable space (reported by @Shifty | Quality Control Lead, GH #3163)
- Fixed dynamic variables (e.g. DynamicValueVariableDriver) randomly using default value on load, even if a source of value is present within the loaded object (previously reported by @seif1, @runtime, @Kal and others, GH #1943)

2021.10.6.332 - Fix crashes due to audio clips, tweaked audio output buffering

Just a small patch, fixing a case of crashes and some more audio buffer tweaks.

Compatible with previous build, no need to intermediately update.

[h2]Tweaks:[/h2]
- Tweaked audio buffer behavior for audio output device some more to reduce cases where the latency increases too much

[h2]Bugfixes:[/h2]
- Removed MP3Source from CSCore codec list for the time being given it's not currently stable
-- This fixes random crashes when MP3 assets are corerced into StaticAudioClip (reported by @WallTack, GH #3144)
-- Please do NOT attempt to force formats that aren't officially supported to be used. Even if this works in some cases, it can break at any moment or cause severe issues in other cases, requiring us to disable it. You can see supported formats for each asset type in log on Neos' startup

2021.10.5.1054 - More LogiX color nodes, updated CSCore & other audio code

Hello everyone! Relatively small update with a few additions and update of the CSCore library which is used for a number of audio features (audio input, output and decoding audio formats), hopefully resolving a number of issues here and there.

We've also switched from youtube-dl to youtube-dlp which has much more frequent updates and might help with some of the YouTube issues, but we'll have to see how it fares.

There will likely be few builds and smaller ones while the MMC judging is going on, there's a lot of worlds to go through sorry! ^^; Plus I want to avoid accidentally breaking (too much) stuff to avoid breaking any entries during this period too.

[h2]New Features:[/h2]
- Added NullOutputWhenAllAreNull to StringConcatenationDriver, which will drive the target string to null if all input strings are null (based on feedback by @Banane9)
- Added color LogiX nodes for "Add" operation for individual channels (based on request by @TheBasementNerd (she/her), GH #3132)
-- Add R, G, B, A, Hue, Saturation and Value
-- R, G, B and Value nodes have "HDR" variant, which will not clamp the channel to 0...1 range

[h2]Tweaks:[/h2]
- Updated CSCore to latest version from master (several commits after 1.2.1.2 + custom modifications)
-- Previously used fork was based on 1.1.x and roughly 2 years older than the latest one
-- This has a number of bugfixes for audio capture (microphone), audio output and audio decoding (WAV, FLAC and Aiff, OGG is currently waiting on some bugfixes)
-- It might potentially help with some crashes when selecting certain audio devices (reported by @Khosumi, @Zandario (CytraX), @Gawdl3y, @ProbablePrime | Docs, @I'm Erin. , GH #2120)
- Switched to youtube-dlp from youtube-dl for more up to date support (based on suggestion by @kazu0617 Neos:kazu, GH #2866)
- Merged German locale additions by @Avunia Takiya
- Merged Russian locale update by @Shadow Panther [RU/EN, UTC+3]
- Merged Japanese locale update by @Aesc/あすく
- Merged Korean locale update by @MirPASEC
- Merged Finnish locale update by @Toni Kat
- Merged English locale update by @Toni Kat
- Merged Dutch locale update by @AnotherFoxGuy

[h2]Bugfixes:[/h2]
- WorldThumbnailItem will now keep working when the "visited" indicator is missing, fixing cases where saved instances broke (reported by @ProbablePrime | Docs)
- Fixed StringConcatenationDriver throwing exceptions when TargetString is null
- Tweaked buffering logic for audio output devices to help prevent caes of the audio crackling (reported by asakleiman, @chemicalcrux#1298, @Shadow Panther [RU/EN, UTC+3], jaidendude, @CyberZott#5567, @Readun#4250, @kazu0617 Neos:kazu, @Zyzyl, @amcomma, @Enverex and others GH #2053)
-- Please let us know if this resolves the problem or if it still persists!

2021.10.3.784 - MMC21 category, Leaky Impulse Bucket node, world browser tweaks

Hello everyone! Got a few smaller goodies for you, mostly some fixes and additions and new MMC21 category for easier discovery of the entries! I've done a few tweaks to the world browser as well, notably it now shows which worlds you've already visisted.

[h2]New Features:[/h2]
- Added "(visited)" indicator to world items, to help visualize which worlds have you visited before
-- Note that this resets when you reset your local database
-- When you open the world, it won't update immediatelly, sometimes the view needs to be refreshed. We'll look into makig it update quicker if needed in the future
- Added MMC21 category to the world browser
-- This allows exploring random MMC21 entries - the category uses random sorting order so time of submission doesn't play a role
-- The category will display all of the submissions on a single page (this is due to last year some people forgetting the other pages)
- Added WriteRefLatch node (requested by @epicEaston197, GH #3122)
- Added (Local) Leaky Impulse Bucket node (under Flow) (requested by @I'm Erin., GH #3109)
-- This node accepts impulses coming at any rate and releases them at a fixed interval one by one
-- The node outputs how many impulses are currently waiting in the bucket
-- The node also has Reset impulse which clears the bucket and any current delay
-- You can also specify maximum capacity. Any impulses beyond this will instead pulse Overflow impulse immediately
-- The Interval is re-evaluted only when an impulse is about to fire, but not in between
-- Maximum capacity is evaluated only when the node is pulsed. It won't affect impulses that are already waiting in the bucket
- Added ParentUnder to RandomAudioClipPlayer(requested by @BassOnToast and @Zyzyl, GH #3126)
-- This will parent the one shot clip under given slot
Tweaks:
- World browser will now display 52 items, instead of 50, so there aren't 2 empty slots at the end of the page
-- Note int he future we'll likely switch this to infite-scroll method instead of paging, but that required further UI development first

- Merged Norwegian locale update by PileOfSnow

[h2]Optimizations:[/h2]
- Batch record queries now exclude NeosDB manifests and token diff validations from the response to significantly decrease network bandwidth usage and improve response times
- Added caching for record batch queries
-- This removes redundant web requests when browing worlds, reducing network bandwidth and improving latency of the world browser

[h2]Bugfixes:[/h2]
- Fixed IsHostAccessAllowed throwing an exception when passed a relative URL (based on report by @Enverex, GH #3120)
- Added LeftHandRotation and RightHandRotation LogiX nodes (requested by @Fuzy Sidwell, GH #3119)
- Added debug logging info to help diagnose allowed hosts on headless (based on issue by @Enverex, GH #3120)