Nanos World cover
Nanos World screenshot
Linux PC Steam
Genre: Shooter, Role-playing (RPG), Simulator, Indie

Nanos World

January: New Character Class, Weather System, Console Commands and more!



The January News Blog is out!

Check it out now! https://docs.nanos.world/blog/january-2023

December: One Lua VM to Rule Them All!

November: Entity System, UDS & UE5.1!

The November News Blog is out!

Featuring an awesome new Entity & Inheriting System!

https://docs.nanos.world/blog/november-2022

October: Playtest & Big API Refactor!

The October News Blog is out!

https://docs.nanos.world/blog/october-2022

Let's Play Halloween 🎃 special game-modes!

It's time again for a super-spooky 🎃 Halloween Event 🎃 in nanos world! Let's play together scary community created game-modes in the Halloween weekend!

We will make available a Playtest version for everyone which wants to play for free! Join our Steam Page by clicking the following image to register!



And of course we couldn't miss our famous official Halloween game-mode!





🎃 In the official Halloween game-mode, you will see yourself on a very dark park, with just very flashy flashlights, Survivors need to find a way to escape before the Horseman murder them all!



🐴 The Horseless Headless Horseman have a special ability which can be used to find where survivors are hiding. Also, Survivors can try to kill the Horseman using their weak pistols, but be aware, they are much more strong than you can imagine!



👻 Stay tuned! Follow our Page and play for free with us! See you on Sunday 30/10! Also join us on Discord to get prepared!

https://store.steampowered.com/app/1841660









🎇 Streaming allowed!

September: Dimensions!

Update 1.17.0 released on bleeding-edge

nanos world is passing through several big refactoring under-the-hood, we are updating and improving portions of the project using more modern techniques that will bring much more performance and stability. It shouldn't affect anything scripting-wise, but if you experience any oddities (something that "stopped" working, crashes, instabilities), please let us know!

Version 1.17.0. Changelog:

New Features


- Experimental: Now some methods can be called on Client Side if the player has Network Authority on the entity: Actor.TranslateTo(), Actor.RotateTo(), Actor.AddImpulse(), Actor.SetForce(), Character.SetWeaponAimMode() and Character.SetViewMode().
- Added new methods to File: ReadJSON() and ReadJSONAsync() to read, parse and return a JSON structure from a file (10x more performatic than doing through Lua).
- Now Blueprint:CallBlueprintEvent() returns values from Blueprint functions (client-side only), multiple returns will return multiple values to Lua.
- Added new methods to Characters: SetAnimationIdleWalkRunStanding(), SetAnimationIdleWalkRunCrouching(), SetAnimationIdleWalkRunProning(), SetAnimationsTransitionStandingCrouching(), SetAnimationsTransitionCrouchingProning() to add custom BlendSpaces and Transition Animations to Character locomotion. Please read the documentation for more information.
- Added new method to SceneCapture: SetShowFlag() to enable/disable custom rendering features from being rendered.
- Added new method to Assets: Precache() (server-side), to force an asset to be loaded during the loading screen (referencing assets normally already add them to this list).
- Added missing method to Assets: GetBlueprints().
- Added new Settings to menu: In-game Max FPS, Visualize Bullet Traces, Visualize Vehicle Doors and Visualize Character Capsules.
- Added new method to Weapons and Vehicles: GetBonetTransform() (client-side).
- New event to Vehicles: TakeDamage.

Improvements


- It is now possible to pass tables through WebUI events (Lua <-> CEF), so you don't need to JSON.parse or JSON.stringify them anymore!
- Improved Weapon's Wallbang behavior (was not working properly). The wallbang of nanos-world-weapons have been increased. Now wallbangs ignores the first-hitting actor. Now it is possible to wallbang Water (water does half of wallbang damage and reach 10x farther).
- Improved WebUI error handling when failed to load a resource (e.g. image or file), now it will display a proper error when it fails.
- Now Character will bend the weapon when getting aim blocked, this will replace the old "un-anim" behavior when getting aim blocked, improving a lot the weapon gameplay.
- The performance of Blueprint:CallBlueprintEvent has been improved.
- Character Interaction has been reworked (grabbing Prop, picking up Pickables, entering Vehicles) and is now more performatic and precise. Big Scaled objects will have better precision when interacting.
- Improved network usage by not re-sending network authority sync events to the network authority owner which sent it to the server.
- Now Water have a custom CollisionChannel Water to be traced against and will not block WorldStatic anymore.
- Now it is possible to pass nil as parameter to Database.
- Several under-the-hood performance improvements.

Bug Fixes


- Fixed SceneCapture not working.
- Fixed WebUI bad behavior when failed to load a page.
- Fixed Color.ToHex() with wrong name.

August: API & Auto Docs!

It's with joy we are released our August News Blog!

Tune in!!! 👉 https://docs.nanos.world/blog/august-2022

Update 1.16.0 released on bleeding-edge

New Features
- Now it is possible to bind Blueprint Event Dispatchers through Lua!!! Meaning the communication from Blueprint -> Lua is now possible natively! Use Blueprint.BindBlueprintEventDispatcher().
- Now it is possible to call an event from Loading Screen JS to disable the main menu music: Events.Call("StopMenuMusic").
- Now Server.SetValue() has a new 3rd parameter to sync the value with the clients, accessible through Client.GetValue().
- Added new parameters to Canvas's Draw...() methods: blend_mode to control how the drawing occur.
- Added new methods to Canvas: DrawMaterialFromSceneCapture() and DrawMaterialFromWebUI().
- Added new method to World: SetStreamLevelVisibility().
- Added new parameter to World.LoadStreamLevel(): make_visible_after_load.
- Added new method to NanosUtils: IsEntityValid() (macro for entity and entity:IsValid()).


Improvements
- HUGE performance boost when having thousands of entities spawned!
- Now Blueprints are returned on Client Traces as well.
- Now numbers passed from WebUI <-> Lua are 64 bits (doubles and integers).
- Now scripting events use 64 bits when transmitting numbers through network (doubles and integers).
- Updated CEF to version 105.
- Now Loading Screen uses CEF as well.
- Ultralight has been completely wiped out.
- Now Main Menu is limited to 120 (was 60) fps, and Loading Screen was increased to 60 (was 30).
- New Settings were added to control UI and Main Menu Music volume. Music volume is for scripting only now.
- Now materials used from SetMaterialFromWebUI/Canvas/SceneCapture() are shared between instances, improving memory usage.
- It is now possible to prevent Character from entering ragdoll when falling by setting HighFallingTime to -1, and prevent Ragdoll damage by setting SetFallDamageTaken to 0, they now work separately.
- Now Client Console will jump to end if it was already "anchored" to the end.
- Now Needs Update labels will appear on vault over Assets and Packages tabs.
- Now the New Game popup will load Additional Packages & Assets from local Config.toml and will display a label over it's tabs.
- Added a new button to Additiona Packages & Assets to Clear all selection.
- Added new SoundType enum value: SoundType.UI.


Bug Fixes
- Fixed Client Console scroll "crazyness" and focus problems.
- Fixed New Game popup not loading the local server Config.toml properly.
- Fixed some Main Menu random crashes.
- Fixed CEF pages not having proper 'locale' loaded.
- Fixed Vault Update All button not working properly.
- Fixed "CONSOLE" being printed on client Console Tab instead of server (if typed on server).
- Fixed Crouching/Uncrouching resetting the Capsule sizes.
- Fixed Lua tables being serialized badly if it got gaps on it.
- Fixed server not sending logs to localhost client connected to it.
- Fixed Exported Functions returning a function when called from inside a coroutine (causing console errors).
- Fixed problem parsing Config.toml when having non UTF-8 characters, now they are stripped from it.
- Attempt to fix a CEF crash when destroying it.
- Attempt to fix Vault with "No Item found" message appearing over Vault items.

Update 1.15.0 released on bleeding-edge

New Features


- Added new method to Server: GetTime().
- Added new method to Pickable: SetCanUse() to Enable/Disable the usage.
- Added new constructor parameter to Melee to allow it's usage by default.
- Added new event to Melee: Attack.
- Added new constructor parameter to Trigger to pass the trigger_only_classes list into it.
- Added new method to Timer: ResetElapsedTime().
- Added new methods to SceneCapture to add Actors to render only.
- Added new settings options: "Gameplay can change FOV" and "Auto realign camera".

Improvements


- Now Trigger will tick at the same rate as the one configured in the Config.toml.
- Now Grenades will trigger Chaos Destruction Damage for other players as well.
- Improved blood spawn rate (particles and decals) based on Effects Scalability.
- Optimized Entities Tick performance on client side.
- Improved the In-game menu background color for better readability.

Bug Fixes


- Fixed a "deadlock" bug causing the server to freeze randomly when using Triggers.
- Fixed Character GetControlRotation() not returning correct values client side.
- Fixed client duplicating logs with LogEntry event.
- Fixed level StaticMesh entities not spawning with the correct scale.
- Fixed WebUI not loading urls with #.
- Fixed attached Props causing physics weirdness on client side.
- Fixed some typos in the settings menu.
- Fixed pressing Enter on password input not reading the password value correctly.
- Fixed bullets going to world origin for other players.