Development Blog #6


Hey guys!

A lot of news in this blog! We have updates on animations, map hot reloading, voice chat/VOIP, and custom events. This blog will be huge!

IMPORTANT: Scripters need to update their code, please check the section about Custom Events in this blog!

Animations

With the 0.39.0 update we implemented Animations. Now it is possible to trigger animations on Characters with Character:PlayAnimation(). Animations may affecting the whole body or only the upper body! A list of all available animations (in our Default Nanos Pack) is accessible here:

https://docs.nanos.world/modding/NanosWorldDefaultPack.html.

Furthermore, It is possible to import custom animations as well!

Hot MapReload

Do you seek to create a powerful DMWorld? This function will help you!

Also with the 0.39.0 update we implemented our so-called Map HotReload function! It is now possible to change the map during the gameplay with Server:ChangeMap(). This will reload all packages and reconnect all players in the new map.

VOIP Channels

Additionally, for deathmatch servers or great roleplay servers we implemented VOIP Channels.
Now you can determine which channel each Player will be talking in (eg: for spectator vs playing players or for different teams). Check out: Player:SetVOIPChannel() and Player:SetVOIPMuted().

Custom Events

Our 0.40.0 update brought custom events to you! Custom events (Events:on) on the server-side now has a new first parameter: Player (who called that event with CallRemote on the client-side). Please scripters update your code! - see examples: https://docs.nanos.world/scripting/static_classes/Events.html.

Our 0.41.0 experiment: Modules

Modules! A new experiment, scripters, please crash it! It is now possible to include (server-side) libraries (e.g. .DLLs and .SOs) and use them in your server! Which means now it's possible to use SQL libraries such as LuaSQL! Read more about Modules in our documentation:

https://docs.nanos.world/scripting/Modules.html

Additional new features

  • A new Loading Screen was added, including an UE4 brand (under approval).
  • New WebUI function: BringToFront().
  • Now Character:on("Drop") and Pickable:on("Drop") has a new last parameter: WasTriggeredByPlayer.
  • New event: Character:on("Interact", character, object) - called when a character attempts to pick up an Item/Weapon/Grenade (soon it will be triggered by more things like interacting with vehicle doors). Return false to prevent it.
  • New built-in JSON library! Now you can serialize and send tables from Lua to WebUI as string. Use JSON.stringify({table}) and JSON.parse("something") - https://docs.nanos.world/scripting/utility/JSON.html (the syntax is the same as JavaScript). TIP: You can also use that to send tables through events!
  • Added missing methods: Character:GetAssetName() and Vehicle:GetAssetName().

Improvements and Bug Fixes

Beside all these features, we worked on the following improvements:

  • Character Movement mechanics was greatly improved, allowing it to be possible to aim while sprinting (with a reduced speed), also fixed and improved some locomotion animations.
  • Our Core Network Library was updated with the latest updates, please inform us if something weird happens.
  • Our Menus were slightly improved with some new texts and brands.
  • Some character animations were slightly improved.
  • The testing bar design was slightly improved.
  • Improved WebUI/Console input interaction with the rest of the game (thanks Resmurf - issue #63)!

Last, but not least, we fixed a lot of bugs:

  • Fixed Punch with elbow not causing damage.
  • Fixed WebUI crashing when destroying it from within an JS event.
  • Fixed other WebUIs crashes as well.
  • Fixed WebUI spawning in the front of main manu sometimes.
  • Fixed Character's Health being displayed wrongly on the client-side.
  • Fixed WebUI visibility not starting correctly - thanks Resmurf for reporting it!
  • Fixed Library packages crashing the server - thanks Resmurf for reporting it!
  • Fixed some crashes obtained through our crash reporter. Thank you all that submitted them!
  • Fixed unarmed-aim while grabbing props.
  • Fixed a bug causing HotReload not working properly if you had more than 1 package (thanks Resmurf - issue #66)!
  • Fixed a bug causing Lua tables not being stored and passed properly from Scripting to API functions.
  • Fixed a serious bug causing server and client to crash when using more than 1 package (thanks Resmurf for sending thousands of crash reports)!
  • Fixed another serious bug causing deleted entities appearing as non-deleted after some time.
  • Fixed character's animation of aiming while sprinting.
  • Fixed WebUI Focus not working properly (thanks Resmurf - issue #62)!
  • Fixed passing strings with ' from Lua to WebUI (thanks Resmurf - issue #64)!
  • Improvements and Bug Fixes

That's it...

Apologies for the wall of text but we hope that you had fun reading it… Stay tuned!