1. Onset
  2. News

Onset News

Onset 1.2.2

[h2]Client changes[/h2]

[h3]Custom connect screen[/h3]

The client can now display a web UI while connecting and downloading files from a server. The page to show is hosted on the game server directly and can be configured in the server_config.json.
This feature is optional.

"connect_screen_url": "loadingscreen.html"

Specifies the file/page to load in the web UI. Files are hosted in the public_html directory on your server. See WebUI load server content below to learn more about that.

"connect_screen_show_cursor": true

Setting to enable the cursor. This could be useful for interactive loading screens.

[previewyoutube][/previewyoutube]

[h3]Replace animation sequences[/h3]

You can replace default animations that are played by SetPlayerAnimation.

ReplaceAnimationLibrarySequence

With the new animation blueprint support you can also play custom animations directly in your animation blueprint. See the changes below for more information.

[h3]Custom animation blueprint support[/h3]

Thanks to UnrealLua you can now load custom animation blueprints and assign them to a USkeletalMeshComponent.
For example you can add a post process anim blueprint to a player. The anim blueprint can contain any common nodes. Some useful ones are documented on the Unreal Engine Documentation page.
https://docs.unrealengine.com/en-US/Engine/Animation/NodeReference/SkeletalControls/index.html



To call a Blueprint function from Lua use the function ProccessEvent.


function SetPlayerAnimBlueprint(player)
-- Get the skeletal component for the body.
local SKComp = GetPlayerSkeletalMeshComponent(player, "Body")

-- Get the skeletal mesh of the component (body model).
local SKMesh = SKComp:GetSkeletalMesh()

-- Set a post process animation blueprint for the skeletal mesh.
SKMesh:SetPostProcessAnimBlueprint(UClass.LoadFrom Asset("/AnimMod/CustomPP"))

-- Init anim again, this will create an instance of the post process animation blueprint.
SKComp:InitAnim(false)

-- Get the new animation instance.
local PPInst = SKComp:GetPostProcessInstance()

-- Call our blueprint function that sets the scale for our "transform modify bone" node.
PPInst:ProcessEvent("SetHeadScale", 2.0)
end


In this example we set a custom post process anim blueprint /AnimMod/CustomPP which runs after Onset's animation blueprint logic.
The blueprint has a function named "SetHeadScale" which sets the Testscale variable that you can see in the image above.

Documentation on the wiki will follow soon.

Throughout testing someone already created custom face animations.

[previewyoutube][/previewyoutube]

[h3]Custom Discord Client Id[/h3]

Servers can now set their own Discord Client Id. This enables the UpdateDiscordActivity to change things like image and text of the current session.
This requires to have a custom discord client id set in the server config.

"discord_client_id": ""


Discord activity documentation:
https://discord.com/developers/docs/game-sdk/activities


local Activity = { }
Activity.state = "Test"
Activity.details = "Test2"
Activity.timestamps = { }
Activity.timestamps.start_time = 1594231268
Activity.timestamps.end_time = 0
Activity.assets = { }
Activity.assets.large_image = "avatar"
Activity.assets.large_text = "Test"
Activity.assets.small_image = ""
Activity.assets.small_text = ""
Activity.party = { }
Activity.party.id = ""
Activity.party.size = { }
Activity.party.size.current_size = 0
Activity.party.size.max_size = 0
Activity.secrets = { }
Activity.secrets.match = ""
Activity.secrets.join = ""
Activity.secrets.spectate = ""
Activity.instance = false

UpdateDiscordActivity(Activity)


[h3]WebUI load server content[/h3]

Currently there are two types of WebUIs. A local and a remote WebUI. Remote ones can load whitelisted websites. Local WebUIs can load content from packages.
With this release local WebUIs can now also load content directly from the game server.

Files must be inside the public_html folder. This folder is in the same directory as your OnsetServer executable.



From Lua you can now access the files:

SetWebURL(web, "http://server/index.html")


This allows to have dynamic web content without having to restart packages.
In the future I'm planning to integrate a CGI gateway to allow running PHP pages.

[h3]New vehicles[/h3]

A new sports car, muscle car, golf cart and a truck with a towing area. The towing area was made by Erwann!



All vehicles: https://dev.playonset.com/wiki/Vehicles

[h3]New footstep sounds[/h3]

Each floor type has received a whole bunch of new sound cues. Depending on your movement speed the sounds files also vary: "crouch", "walk", "run" and "sprint".

Remember you can influence which footstep sounds are played by having one of the following names in your materials.

metal, grass, concrete, gravel, ground, wood, carpet, sand, water, snow


A new event is called when a player hits the ground with their feet. You can return false to prevent the default footstep from playing.

OnPlayerFootstep(player, floor_type)


The floor_type can be the following: https://dev.playonset.com/wiki/FloorTypes

[h3]Lua 5.4 Update[/h3]

The Lua library has been updated to version 5.4. You can read about the new features, which you can now use in Onset, on the official Lua page. https://www.lua.org/manual/5.4/readme.html#changes

[h3]UnrealLua API[/h3]

New functions have been exposed that give more low level control over the game. One of the usage is shown above with the custom animations.
There will be more examples soon on how to use them.

In the meantime you can lookup the UE4 Documentation for their syntax.


UClass.LoadFromAsset(Path)

UObject:
ProcessEvent(FunctionName [, params...])

USkeletalMesh:
SetPostProcessAnimBlueprint(Class)

USceneComponent:
GetSocketLocation,
GetSocketRotation,
DoesSocketExist,
GetAllSocketNames

UPrimitiveComponent:
SetReceivesDecals

USkinnedMeshComponent:
SetMasterPoseComponent,
ShowAllMaterialSections,
GetNumBones,
GetBoneIndex,
GetBoneName,
GetSocketBoneName

USkeletalMeshComponent:
SetGlobalAnimRateScale,
GetGlobalAnimRateScale,
SetPauseAnims,
GetPauseAnims
SetNoSkeletonUpdate,
GetNoSkeletonUpdate
InitAnim
GetAnimInstance
SetAnimInstanceClass
GetPostProcessInstance
ToggleDisablePostProcessBlueprint
GetDisablePostProcessBlueprint
SetDisablePostProcessBlueprint
SetEnableBodyGravity
IsBodyGravityEnabled
SetEnableGravityOnAllBodiesBelow
AddForceToAllBodiesBelow
AddImpulseToAllBodiesBelow
ClearMorphTargets
ResetAnimInstanceDynamics
LinkAnimClassLayers,
UnlinkAnimClassLayers,
GetLinkedAnimLayerInstanceByClass,
GetLinkedAnimGraphInstanceByTag,
LinkAnimGraphByTag,
HasValidAnimationInstance
SetAnimationMode,
GetAnimationMode,
PlayAnimation,
SetAnimation,
Play,
Stop,
IsPlaying,
SetPosition,
GetPosition,
SetPlayRate,
GetPlayRate,
OverrideAnimationData

Expose enums
EAttachmentRule,
EDetachmentRule,
FAttachmentTransformRules,
FDetachmentTransformRules,
EAnimationMode,
ETeleportType

AActor:
AttachToActor,
DetachFromActor,
GetAttachedActors,
GetAttachParentActor,
GetActorEnableCollision


[h3]Client side commands[/h3]

Chat commands can now be added the same way as on the server using AddCommand.
The OnPlayerChatCommand event is being called before the command handler. If you return false in the even or in the handler the command won't be sent to the server.

[h3]Other changes[/h3]
- Fix vehicle light toggle (switch) sound being too loud.
- Fix vehicle id 36/37 bright front light.
- Fix some vehicles not having proper damage in LODs.
- ATTACH_* types are now exposed to the client like on the server. https://dev.playonset.com/wiki/AttachType
- When something blocks the vehicle door the player will get out of the vehicle from another door.
- Add Epic setting for Ambient Occlusion and generally slightly improve the appearance.
- Add SetSoundRadius and GetSoundRadius for 3D sounds.
- Attempt to fix a crash with SetSound3DLocation.
- CreateSound now has an optional looping parameter. Has no effect on network streams.
- The maximum sounds playing was increased to 32. Useful for the soundstreamer in conjunction with vehicle sires.
- IsValidPlayer now returns true for the local player identifier.
- Fix CopyToClipboard function.
- Fix OnPlayerParachuteLand function.
- Voice is now activated by push to talk by default in the settings.
- The following vehicle functions have been added to the client. They were server only before.
SetVehicleColor, GetVehicleColor, SetVehicleLicensePlate, SetVehicleHoodRatio, SetVehicleTrunkRatio, GetVehicleModelName

- Add OnPlayerToggleVehicleHorn which is called when a player presses the horn key. Return false to stop the horn from playing.
- Disable look up/down in first person when a non-layered animation plays. (From SetPlayerAnimation)
- Fix memory leak when Lua function references are destroyed. This was mostly noticeable when calling the Delay function frequently.
- Added pipes to the object list: https://dev.playonset.com/wiki/Objects
- Update Unreal Engine to 4.25.3.


[h2]Server changes[/h2]

[h3]Update Lua to 5.4[/h3]

Plugin creators are encouraged to recompile their project with the latest OnsetSDK header files and Lua libraries. https://github.com/BlueMountainsIO/OnsetSDK

You can read about the new features, which you can now use in Onset, on the official Lua page. https://www.lua.org/manual/5.4/readme.html#changes

[h3]Console Input[/h3]

A new event named OnConsoleInput is called when a new input was confirmed with the ENTER key.


AddEvent("OnConsoleInput", function(input)
print("OnConsoleInput "..input)

if input == "quit" or input == "exit" then
ServerExit("Exiting via console command")
end
end)




[h3]Other changes[/h3]

- GetPlayerEquippedWeapon returned an incorrect weapon id.
- Add "discord_client_id" to the server_config.json.
- Update OpenSSL, Boost and Lua libraries.
- Fix the server from failing to register with the master server if it takes longer than 10 seconds to start scripts.
- Fix crash when a timer was registered during initial script load and a script error occurs.
- SetPlayer/NPCAnimation now optionally accepts an integer for the animation id.
- Add events OnDoorDestroyed OnNPCDestroyed OnObjectDestroyed OnPickupDestroyed OnText3DDestroyed.
- Fix memory leak when Lua function references are destroyed. This was mostly noticeable when calling the Delay function frequently.

Onset 1.2.1

Due to the engine upgrade in this release, all modders and servers must update their .pak files. See below fore more information.
As this release changes a lot of technical stuff you can switch back to v1.2.0 in the beta tab on Steam for testing purposes. (Onset -> Properties -> Betas -> v1.2.0)

[h2]Client changes[/h2]

[h3]Unreal Engine upgrade to 4.25[/h3]

Onset has been upgraded to use the latest Unreal Engine version 4.25. There are numerous improvements related to performance since 4.23.

One requirement of this is that .pak files must be re-packaged with the new modding tool for 4.25. Otherwise the game crashes when loading a old pak file.
Here's a guide for modders and server owners on how to update. If you need help with this please reach out to me.

1. Install Unreal Engine 4.25 from the Epic Games launcher.
2. Download and extract the new modding tool for 4.25 from here: https://dev.playonset.com/wiki/Modding
3. Copy the new Config + Plugins directory and OnsetModding.uproject to your old project. (I recommend doing a backup before.)
4. Launch the project and repackage the .pak file like always.


[h3]Load time improvements[/h3]

Teleporting around the map has been problematic because of the game loading new level tiles from disk everytime. In this version the game loads parts of the level assets in the background an keeps them in memory. Therefore you will see an increased RAM usage. But it definitely pays off: The loading time has been reduced to ~1.5 seconds on HDDs and almost instant for some SSDs.
If you system has a quad core CPU and at least 4GB free of RAM the game will load even more assets into RAM.
The RAM usage increased from ~1.5GB to ~2.5GB because of this.

[h3]Landscape Performance[/h3]

Thanks for a new rendering system the landscape now requires a lot less GPU performance.
On a test system the draw time improved by 2ms per frame.

[h3]View Distance[/h3]

All levels now have an improved automatically generated proxy for ultra far view distances. Therefore the far depth of field effect has been disabled by default.



[h3]New sky and lighting[/h3]

The sky has been completely replaced with a new one. This also comes with an improved lighting setup. It makes use of the "Sky Atmosphere Component" first introduced in Unreal Engine 4.24. This enables a much more realistic scene lighting than before.

The Lua funciton SetTime can be used as usual to set the game time.

Early morning:



Midday:



Evening:



Cloud Density

SetCloudDensity(density) controls the amount of clouds. A density of 0 hides the clouds on the first cloud layer.



A density of 4.0 will cover the entire sky with clouds. This also has an effect on the lighting on the ground.



Other sky functions:
SetSkySaturation(saturation), default: 1.05
GetSkySaturation()
SetCloudSpeed(speed), default 0.1
GetCloudSpeed()
SetCloudDensity(), default 1.15
GetCloudDensity()
SetSunRadius(radius)
GetSunRadius()
SetMoonRadius(radius)
GetMoonRadius()


The following functions have been removed in this release:
SetSunShine
SetSunAzimuth
SetStarsBrightness
SetMoonShine
SetFogDensity
SetSunLightIntensity
SetSkyLightIntensity
SetMoonLightIntensity
SetSkyRotationSpeed
SetWeather


[h3]Game size reduction[/h3]

All game texture settings have been revised and are now shared among other assets.

Old game data size: 27.1GB
New game data size: 20.9GB

[h3]Material/Shader improvements[/h3]

The games materials have been cleaned up. There's now a 40% less shader overhead.

Onset now also ships with an experimental support for the Vulkan render API thanks to Unreal Engine. You can launch the game with the "-vulkan" commandline parameter to try it out.

[h3]New interior[/h3]

The white building next to the big shopping mall now has a walk-able interior. It is directly connect with the underground parking space.



[h3]Other changes[/h3]

  • ReplaceObjectModelMesh now works with non-existent model ids. So you can add new ones without replacing another one. You can still use the existing approach with UnrealLua.
  • Add clothing slots Clothing6, Clothing7, Clothing8, Clothing9.
  • VoIP volume can now be changed in the main menu.
  • Slightly improve the network sync of unoccupied vehicles.
  • Increased pak mounting limit to 128 pak files.
  • Should fix rare crash occurring on startup for some users.
  • Fix helicopter rotor sound collision sound not being 3D.
  • Implement animation inertialization blending thanks to the engine upgrade. This change has a positive impact on performance.
  • Hide characters for server password input fields.
  • FVector, FRotator, FLinearColor, FColor and FHitResult now have a string metamethod, so you can easily print them.
  • Fix blood effect being spawned at the wrong location sometimes.
  • Fix interior reverbs in all interiors near the big warehouse in the desert.
  • Performance improvements near the desert warehouse and underground vault interior.
  • Players no longer block the camera while you are in a vehicle.
  • Fix lorry vehicle mesh having invisible parts.
  • Add "-logfunctioncalls" game parameter to log Lua function calls to the dev log. (requires -dev)
  • Add new UnrealLua functions:


FRotator.NormalizeAxis(Angle)
FMath.RInterpTo(CurrentRotator, TargetRotator, DeltaTime, InterpSpeed)
FMath.VInterpTo(CurrentVector, TargetVector, DeltaTime, InterpSpeed)
FMath.FInterpTo(CurrentFloat, TargetFloat, DeltaTime, InterpSpeed)
FMath.ClampAngle(AngleDegrees, MinAngleDegrees, MaxAngleDegrees)


[h2]Server changes[/h2]
  • Fix vehicle light sync.
  • Fix vehicle rotation being wrongly set by the new sync from the last update.

The WorldDoors.lua has been updated for the new interior and a small fix in the Weapons.lua was made.

Known issues in this release
- The game can crash randomly when changing video settings.
- The game startup time can be extremely slow on the first time.
- Ocean color has weird coloring at different times.
- The game's pak file has not been split into several pieces yet (to improve Steam updating times). I will take look at it for the next update.

[h3]YRPF[/h3]

Also want to give a shout out to Yuki for his RP server framework. A list of features can be found here: https://github.com/OALM-Team/YRPF/wiki/Features
It also features support for Tebex: https://github.com/OALM-Team/YRPF/wiki/Cash-Shop-TEBEX

It's open source on GitHub:
https://github.com/OALM-Team/YRPF

For more great Onset scripts visit https://github.com/alexandregv/awesome-onset

Onset 1.2.0

The game compatibility has changes in this release. Server owners must update their server via steamcmd in order to allow clients to connect.
https://dev.playonset.com/wiki/DedicatedServer

[h2]Client changes[/h2]

New vehicle handling
The old handling has been completely replaced. Vehicles now feel much more refined and fun to drive. This consumed a large portion of the development time of this update. Progress has also been made towards vehicle modding which will follow in a future update. I also aim to expose the handling settings of each car then. Vehicles have a lot of settings and dependencies. I aim to make it as easy as possible so that still needs some time.

Fix pushing of vehicles
Players can no longer push/move vehicles by running against them in certain angles. This fix required a lot of research in the physics engine and therefore also took some time to implement.
This means you can finally move inside of the ambulance without causing havoc.

Improved vehicle front lights and helicopter search lights
Vehicle lights usually have a large impact on the geometry in front of it. Using a standard light would be too performance heavy. The new system fakes the light in the world no matter how far the light goes.



New physics/vehicle network synchronization
This update actually interpolates between multiple update states by using timestamps resulting in a much smoother movement. It also extrapolates in cases where network updates stall for a short amount of time.
[previewyoutube][/previewyoutube]

Skid effects
[previewyoutube][/previewyoutube]

Backfire effects
Can be enabled per vehicle with the function https://dev.playonset.com/wiki/EnableVehicleBackfire


Other vehicle/helicopter changes
- The engine sounds have been slightly improved. The sounds files are still the same but are more connected to the RPM and should sound less like toy cars.
- You no longer die when getting out of moving vehicles. The system has been changed to only cause damage when the vehicle directly hits you in your direction.
- Players standing on top of vehicles no longer appear to lag.
- I've tweaked some input logic of the helicopters which could help to fix the helicopter spinning bug. Please give me feedback if you still manage to reproduce it.
- Vehicles no longer depend on FPS. Meaning vehicles always accelerate at the same speed no matter of your current FPS.
- Ramming of vehicles has been slightly improved. It's still not perfect when you hit a car that is controlled by another player but we could see more improvements in the future here.
- Dead engine while holding shift did not disable nitro.
- Nitro no longer has an effect when the vehicle/tires have no ground contact.
- You now longer freeze when enter and leaving a vehicle with an active animation.
- The bullbars on the police sedan now have a working collision.
- Better vehicle collision damage.. Mass is taken into account when ramming another vehicle for example. You car also no longer gets destroyed when driving in a loop very fast.
- Increased gravity to feel more realistic.
- Add over 10 new collision sounds for vehicles.

New vehicles

New walkable stores

New character meshes
/Game/CharacterModels/Mutant/Meshes/SK_Mutant


/Game/CharacterModels/Skeleton/Meshes/SK_Skeleton


20 new dance animations
Including but not limited to the backpack kid.
See https://dev.playonset.com/wiki/AnimationList
[previewyoutube][/previewyoutube]

Other changes
- Fix GetStreamedObjects when an object was detached.
- Add missing damage model and brake lights for Light Cargo and Tactical Heavy vehicle.
- Some vehicles had no working trunks or bonnets.
- Play door open sound before close sound, also fix sound radius to be smaller.
- Fix physics doors not moving when another players runs against them.
- Increased control over the vehicle when it moves in mid-air.
- Add a vehicle engine cool down sound effect after driving some time.
- The helicopter rotor now causes damage to players.
- Fix helicopters turn input key for the right direction not working properly.
- Fix helicopter moving too fast forward when pressing W + Up key at the same time.
- Support for Arabic in the default chat window.
- Reduce voice activation threshold and add a delay of 100ms when releasing the push to talk key.
- Add "Skin Color" parameter to SK_Humanoid character mesh.
- The player mesh now blocks the camera for a better aiming.
- CreateSound and CreateSound3D now follows the audio volume setting from the main menu.
- New events: OnPlayerToggleVehicleNitro(vehicle, toggle), OnVehicleBackfire(vehicle), OnPlayerToggleAim(toggle)
- New function CancelAimImmediately()
- Add UnrealLua functions
USceneComponent::GetForwardVector(), USceneComponent::GetRightVector(), USceneComponent::GetUpVector()

[h2]Server changes[/h2]

Streaming Distances

Add streaming distance configuration to the server_config.json. You can now adjust distance and update rate of each entity pool. See https://dev.playonset.com/wiki/server_config for more information.
This is useful for gamemodes that require a greater visibility range for players or vehicles.

- Remove old "stream_distance", "stream_update_rate" and "voice_distance" from the server_config.json
- Add EnableVehicleBackfire(vehicle, enable) and IsBackfireEnabled(vehicle)
- Fix damageindex in OnVehicleDamage
- OnPlayerWeaponShot event now reports the bone name in the last parameter.
- Fix property values not being sent to the player in OnPlayerJoin
- Add OnVehicleDestroy(vehicle) that is being called when a vehicle get's destroyed by the DestroyVehicle function.

Make sure to update your WorldDoors.lua and Weapons.lua. Remember the server_config.json will be overridden when you update the server.


[h2]What's next?[/h2]
The recently released Unreal Engine 4.25 has a feature that improves Onset's rendering performance. We will probably update to UE 4.25 which will also require for modders to repackage their .pak files. I will post more information about this on Discord.
I've been working on improving the games performance and level loading time while working on this update. So expect the next update (1.2.1) soon.

Onset 1.1.0 (Protocol Compatibility 2)

The game compatibility has changes in this release. Server owners must update their server via steamcmd in order to allow clients to connect.
https://dev.playonset.com/wiki/DedicatedServer

[h2]Client changes[/h2]

New Police Department Interior
YuriCustoms (@SLB2k11) has been working on a new interior for the police department. New doors have been added to the WorldDoors.lua script in the default package.




Female characters
As requested by some users I've been working on introducing female characters to Onset. Thanks to @FlowPX3 for his initial research.

Most clothing items from the male model have been adjusted to fit the female body. You can use the function SetPlayerVoiceTone(player, VoiceTone) to switch between male and female character sounds.



Female body, hair and clothing items.


/Game/CharacterModels/Female/Meshes/SK_Female01
/Game/CharacterModels/Female/Meshes/SK_Female02
/Game/CharacterModels/Female/Meshes/SK_Female03
/Game/CharacterModels/Female/Meshes/SK_Hair01
/Game/CharacterModels/Female/Meshes/SK_Hair02
/Game/CharacterModels/Female/Meshes/SK_Hair03
/Game/CharacterModels/Female/Meshes/HZN_CH3D_Prison-Guard_LPR
/Game/CharacterModels/Female/Meshes/HZN_CH3D_Prisoner_LPR
/Game/CharacterModels/Female/Meshes/HZN_CH3D_PrisonerPants_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_CargoPants_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_DenimPants_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_FormalJacket_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_FormalPants_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_FormalShirt_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_Labcoat_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_Shirt_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Piece_Tie_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Police_Shirt-Long_LPR
/Game/CharacterModels/Female/Meshes/HZN_Outfit_Police_Shirt-Short_LPR
/Game/CharacterModels/Female/Meshes/SK_Armor01
/Game/CharacterModels/Female/Meshes/SK_Armor02
/Game/CharacterModels/Female/Meshes/SK_Equipment01
/Game/CharacterModels/Female/Meshes/SK_Jacket01
/Game/CharacterModels/Female/Meshes/SK_Jacket02
/Game/CharacterModels/Female/Meshes/SK_Jeans01
/Game/CharacterModels/Female/Meshes/SK_Outfit01
/Game/CharacterModels/Female/Meshes/SK_Outfit02
/Game/CharacterModels/Female/Meshes/SK_Outfit03
/Game/CharacterModels/Female/Meshes/SK_Outfit04
/Game/CharacterModels/Female/Meshes/SK_Outfit05
/Game/CharacterModels/Female/Meshes/SK_Outfit06
/Game/CharacterModels/Female/Meshes/SK_Pants01
/Game/CharacterModels/Female/Meshes/SK_Pants02
/Game/CharacterModels/Female/Meshes/SK_Pullover01
/Game/CharacterModels/Female/Meshes/SK_ShirtCombo01
/Game/CharacterModels/Female/Meshes/SK_Shoes01
/Game/CharacterModels/Female/Meshes/SK_Shoes03
/Game/CharacterModels/Female/Meshes/SK_Shoes04
/Game/CharacterModels/Female/Meshes/SK_Shoes05
/Game/CharacterModels/Female/Meshes/SK_Shoes06
/Game/CharacterModels/Female/Meshes/SK_Shorts01
/Game/CharacterModels/Female/Meshes/SK_TShirt01
/Game/CharacterModels/Female/Meshes/SK_TShirt02
/Game/CharacterModels/Female/Meshes/SK_TShirtShorts01
/Game/CharacterModels/Female/Meshes/SK_Undershirt01
/Game/CharacterModels/Female/Meshes/SK_Worker


New male faces and hair styles

16 new male faces and 18 hair styles.



All faces can be viewed here: https://imgur.com/a/xO9JaI2

Male faces models:
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal05_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal06_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal07_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal08_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal09_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal10_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal11_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal12_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal13_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal14_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal15_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal16_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal17_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal18_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal19_LPR
/Game/CharacterModels/SkeletalMesh/BodyMerged/HZN_CH3D_Normal20_LPR


These hair models are compatible among the new male faces.
/Game/CharacterModels/SkeletalMesh/SK_Hair01
/Game/CharacterModels/SkeletalMesh/SK_Hair02
/Game/CharacterModels/SkeletalMesh/SK_Hair03
/Game/CharacterModels/SkeletalMesh/SK_Hair04
/Game/CharacterModels/SkeletalMesh/SK_Hair05
/Game/CharacterModels/SkeletalMesh/SK_Hair06
/Game/CharacterModels/SkeletalMesh/SK_Hair07
/Game/CharacterModels/SkeletalMesh/SK_Hair08
/Game/CharacterModels/SkeletalMesh/SK_Hair09
/Game/CharacterModels/SkeletalMesh/SK_Hair10
/Game/CharacterModels/SkeletalMesh/SK_Hair11
/Game/CharacterModels/SkeletalMesh/SK_Hair12
/Game/CharacterModels/SkeletalMesh/SK_Hair13
/Game/CharacterModels/SkeletalMesh/SK_Hair14
/Game/CharacterModels/SkeletalMesh/SK_Hair15
/Game/CharacterModels/SkeletalMesh/SK_Hair16
/Game/CharacterModels/SkeletalMesh/SK_Hair17
/Game/CharacterModels/SkeletalMesh/SK_Hair18


Humanoid Robot
New robot character model.

/Game/CharacterModels/Humanoid/Meshes/SK_Humanoid01




New helicopter

Military style helicopter. The vehicle id is 26.



New Armor Clothing

/Game/CharacterModels/Clothing/Meshes/SK_Armor01
/Game/CharacterModels/Clothing/Meshes/SK_Armor02




New additions and bug fixes:
  • The spectator pawn/camera now uses the same control key mappings as the local player.
  • LineTrace behavior ignored by certain surfaces near the canal area in the city.
  • Fix windmills not spinning.
  • Fix collision in prison cell block B.
  • Fix another prison fence collision.
  • Map fixes.
  • Remove CreateCollision and related functions as this system didn't work out as intended.
  • Add registration number field to the helicopter. It can be modified with SetVehicleLicensePlate on the server.
  • Fix cinema glitch in the corner.
  • Remove random kid screaming from the ambient sounds.
  • Fix GetInputAxisValue always returning 0.0.
  • Re-enable startup logo.
  • Fix serverbrowser ignoring filters when updating from the masterlist.
  • Reduce falling through the map on teleport by spawning an invisible mesh below the player.
  • Remove TemporalAA sharpening to save on performance.
  • Increase chat Z-Order so that it will always be on top of the WebUIs
  • Enable text outline in the chat window
  • Add new detail texture for the desert ground, also increase sun light intensity to improve scene lighting a bit
  • Fix vehicle light switch and swimming sound not being played in 3D.
  • Fix pickup being triggered multiple times for players.
  • Improve vehicle license plate locations.
  • Add sprinting animations for pistols and rifles.
  • Add missing 4K textures for the body of the male character (they were just 1K).
  • Add missing prison guard uniform /Game/CharacterModels/SkeletalMesh/Outfits/HZN_CH3D_Prison_Guard_LPR
  • Add missing prisoner cargo pants: /Game/CharacterModels/SkeletalMesh/Outfits/HZN_CH3D_PrisonerPants_LPR
  • Add prefab houses to object identifier.
  • Fix CARRY_SHOULDER_IDLE not looping.
  • Set r.Tonemapper.Sharpen=2.0 (Replaces TemporalAA sharpening)
  • Fix license plate on classic sedan hovering in air when opened
  • The snow functions (SetLandscapeSnowAlpha, EnableSnowParticles) have been disabled in order to keep them for the winter edition of Onset. However calling them won't trigger an error.
  • Classic sedan (lada) now has proper collisions for the trunk, hood and doors.
  • New footstep sounds for wood, carpet and gravel material surfaces. You can trigger different footstep sounds by having one of the following words in your material name: "metal", "grass", "gravel", "ground", "wood", "carpet", "sand".
  • Fix LoadPak loading pak files from different server cache directories.
  • Add Lua GetVehiclePassenger, GetVehicleDriver, GetVehicleNumberOfSeats
  • Add SetPlayerVoiceTone(player, VoiceTone), valid voice tones are: "male", "female"
  • New hittype: HIT_DOOR (GetMouseHitEntity etc. will reflect these changes).
  • Add SetDoorPropertyValue, GetDoorPropertyValue, OnDoorNetworkUpdatePropertyValue
  • Add event OnObjectModelChange(object, modelid) which is triggered when SetObjectModel is called on the server.
  • Increase remote event max string length to 8192
  • Remove modelid limit for objects and pickups. This is useful as you can now use any model id number in CreateObject and override it to a custom model in the client StreamIn event.
  • Increase maximum number of packages to 64.
  • Players weapon meshes can now have simulated physics parts. The strap handle on the SMG02 is now simulated.
  • Increase remote event name max length to 128 (was 64).
  • Add Lua TogglePlayerTag(player, tagname, enable) to selectively disable certain tags above a players head. Valid tagnames are "name", "health", "armor" and "voice".
  • GetDoorLocation now returns the yaw rotation as the 4th parameter.
  • Fix IsMouseCursorEnabled not returning a boolean.
  • Text3D entities wrongfully interfered with mouse hits and traces.
  • Add OnPlayerToggleVehicleLight(player, bEnable), return false in this event to prevent a player from using the vehicles lights.


New UnrealLua functions:
UStaticMesh::GetBoundingBoxSize
USkeletalMesh::GetBoundingBoxSize
USkeletalMeshComponent:GetSkeletalMesh
UObject::GetPathName
AActor::GetActorForwardVector
AActor::GetActorRightVector
AActor::GetActorUpVector


[h2]Server changes[/h2]

Voice Channels

You can now realize phones by having different players in the same voice channel.
SetPlayerVoiceChannel(player, channel, enable)
IsPlayerVoiceChannel(player, channel)

  • Vehicle engines no longer turn on automatically, use Start/StopVehicleEngine to control the vehicles engine.
  • GetStreamedPlayersForPlayer will no longer return the own player identifier.
  • Fix SetObjectMoveTo not moving the objects correctly.
  • Fix SetObjectDetached when the object was attached to another object.
  • Fix calling exported package functions in nested events.
  • Improve occurrence where VoIP packets aren't send when the player is driving fast.
  • Add OnVehicleDamage(vehicle, healthdamage, damageindex, morphdamage)
  • Add .svg support
  • New hittype: HIT_DOOR (Update Weapons.lua)
  • Add SetDoorPropertyValue, GetDoorPropertyValue
  • Add SetObjectModel
  • Add IsDoorStreamedIn, IsPickupStreamedIn, SetPickupLocation, IsText3DStreamedIn, SetText3DLocation
  • GetDoorLocation now returns the yaw rotation as the 4th parameter
  • Increase remote event max string length to 8192
  • Increase max package file count to 1024 (including client scripts)
  • Increase maximum number of packages to 64.
  • Only sync weapon shots to streamed in players
  • Update WorldDoors.lua
  • Update Weapons.lua
  • Add VehicleEngine.lua

Onset 1.0.3

[h2]Client changes[/h2]

Remote WebUI whitelist
The whitelist for remote web UIs can now be configured in a config file. This is subject to further improvements.

%AppData%/../Local/Onset/Saved/Config/remotewebui_whitelist.cfg


Enabling WebUI logs
WebUIs now log errors to the following file. This is helpful to debug JS errors. (Only works if started with the -dev flag)
AppData%/../Local/Onset/Saved/Logs/cef3.log 


WebUI Remote Debugging (Dev Tools)
Inspect your Onset UI in Google Chrome. Start Onset with the -dev flag and connect to localhost:9222 in Chrome. You can specify a different port to Onset like this: -cefdebug=1337
The image below shows the dev mode being used on the main menu.



New street lamp objects



New worker clothing asset

/Game/CharacterModels/Clothing/Meshes/SK_Worker

It's advised that you set a body mask to prevent mesh clipping.

Moving lips while VoIP talking
You have to add the piece of code below to your client script.

[previewyoutube][/previewyoutube]

AddEvent("OnPlayerTalking", function(player)
SetPlayerLipMovement(player)
end)


Each player model now has 3 morph targets: "A", "E" and "O". You can change them individually using the new UnrealLua functions (see SetMorphTarget below).
If you have a custom player model modded, then you will have to add these morph targets to the mesh in order to make the SetPlayerLipMovement work.

Other changes

  • Increase pak mount limit to 32.
  • Fix rare VoIP crash when a player streams out.
  • Fix helicopter crash sound being not 3D.
  • Add missing gamepad controls for helicopters.
  • Fix helicopter spinning sideways when being the only passenger without a pilot.
  • Fix falling through map when jumping in ragdoll
  • Cancel aim when going into ragdoll.
  • Fix main menu bug with languages not able to select different languages.
  • Fix clipping on the cargo pants.
  • Enable Async loading thread which shouild improve loading times on some systems.
  • Fix SetWebLocation for 3D WebUIs
  • Fix SetSound3DLocation
  • Fix OnSoundFinished
  • Add GetNPCBoneNames, GetNPCBoneLocation
  • Add SetPlayerLipMovement
  • Add OnPlayerTalking
  • Add IsPlayerPlayingAnimation
  • Add UpdateStreamingLevels
  • Add Lerp, LerpVector
  • Fix Lua instruction limit bug.
  • SetIgnoreMoveInput(true) now also disables player jumping as this was requested by a lot of users.


New UnrealLua API functions.
Light functions are now exposed. I know there isn't any good documentation for the UnrealLua API functions yet. If you need help with them please tag me in #scripting.
I also also create some example package for the UnrealLua API soon.

- Add UObject::IsA
- Add AActor::GetComponents()
AActor::GetComponentsByClass()
- Add USkeletalMeshComponent::SetMorphTarget
USkeletalMeshComponent::GetMorphTarget
- Add UStaticMeshComponent::GetStaticMesh
- Add UPrimitiveComponent::SetSimulatePhysics
UPrimitiveComponent::SetAngularDamping
UPrimitiveComponent::SetLinearDamping
- Add USceneComponent::GetMobility
- Add UParticleSystemComponent::SetTemplate
UParticleSystemComponent::SetFloatParameter
UParticleSystemComponent::SetColorParameter
UParticleSystemComponent::SetEmitterEnable
UParticleSystemComponent::HasCompleted
- Add ULightComponentBase::SetCastShadows
- ULightComponent::SetIntensity
- ULightComponent::SetLightColor
- ULocalLightComponent::SetAttenuationRadius
- ULocalLightComponent::SetIntensityUnits
- UPointLightComponent::SetLightFalloffExponent
- UPointLightComponent::SetSoftSourceRadius
- UPointLightComponent::SetSourceLength
- UPointLightComponent::SetSourceRadius
- USpotLightComponent::SetOuterConeAngle
- URectLightComponent::SetBarnDoorAngle
- URectLightComponent::SetBarnDoorLength
- URectLightComponent::SetSourceHeight
- URectLightComponent::SetSourceTexture
- URectLightComponent::SetSourceWidth


[h2]Server changes[/h2]
  • Fix SetPlayerName not correctly overriding Steam name.
  • Fix crash "remote_endpoint: Transport endpoint is not connected".
  • Fix Start/StopPackage not sending package commands to all clients.
  • Fix crash in print log function.
  • Add GetAllObjects()
  • Add OnScriptError(error_msg)
  • Add GetPlayerBySteamId(steamid)
  • Add Lerp(t, a, b), LerpVector(t, x1, y1, z1, x2, y2, z2)
  • Add http client (working on documentation) Example: https://gist.github.com/BlueMountain...46f465148ec5cf
url_encode(str)
http_count()
http_get_all()
http_is_valid(http)
http_create()
http_destroy(http)
http_is_error(http)
http_result_error(http)
http_result_body(http)
http_result_header(http)
http_result_status(http)
http_set_protocol(http, protocol)
http_set_resolver_protocol(http, resolver_protocol)
http_set_host(http, host)
http_set_port(http, port)
http_set_target(http, target)
http_set_verb(http, verb)
http_set_timeout(http, timeout)
http_set_verifymode(http, verifymode)
http_set_version(http, httpversion)
http_set_keepalive(http, keepalive)
http_set_field(http, field, value)
http_set_body(http, body)
http_send(http)


Zeus Admin package now ships with the server by default. Source https://github.com/DasDarki/onset-zeus
Thank you to DasDarki

Zeus is an Administration Tool for Onset created for all Players free to use. Zeus is module-based, which means that it can be expanded easily and without much effort. All you have to do is write modules for Zeus in LUA and enter them into the system. See below under "Module API". Zeus also provides a complete ban and permission system, which even has a simple command interface for commands with permissions.

Admin Menu (/zeus)