Onset cover
Onset screenshot
Genre: Role-playing (RPG), Simulator, Indie

Onset

Winter Update

Enable new winter functions:

EnableSnowParticles(bEnable)
Enable snow particles in player view.

SetLandscapeSnowAlpha(Alpha)
Changes how much snow is visible on the landscape. A value of 0 means no snow at all and a value of 1 means fully covered with snow.

Both functions are client side.

This update also includes a maintenance update for the WebUIs. Please report any problems with scripted WebUIs or the main menu of the game.

Onset 1.4.0

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

Gas Station



Erwann reworked the gas station in the main city. It looks a lot more attractive now.




A new sign on top the city hills fill some empty space.



The restricted rooms in the townhall are now open for usage.



Bikes



Something that a lot have asked for. They are kind of experimental for now, so expect some bugs. The handling will also be further improved.

Biker Suit

/Game/CharacterModels/BikerSuit/Meshes/SK_BikerSuit



New wheeled vehicles



Apocalypse



Sedan



Tank



Forklift

You can lift up and down using the Q and E key.



Shared Scripts



Lua scripts can now be marked as "shared". These will run on both the server and client. New functions have been added to check if the current scripts runs on the server or on the client.

IsServer()
IsClient()




Support for custom maps water volumes



You can now place "Physics Volumes" on custom maps and use them as a swimmable volume for players and vehicles.



Make sure to set the following settings on your volume. Under "Brush Settings" you can change the size of the water volume.



New



  • Support for wildcards in the package.json
  • Add function GetPackageFiles(PackageName)
  • Add function GetAllPackages()
  • Add function GetPlayerVehicleSeat(player)
  • Add function GetObjectByStaticMeshActor(StaticMesh)
  • Add function IsClient() and IsServer()
  • Function CreateSound() can now play sound files from the gameserver /public_html folder.
  • The default map now has a proper navigation mesh. This can be used for AI Blueprints.
  • Vehicles can now have more than 4 doors. Vehicle ID 8 now has 5 seats, ID 24 has 4 seats, ID 30 and ID 31 have 5 seats and ID 47 and 48 have 5 seats.
  • New spawnable objects have been added. See https://dev.playonset.com/wiki/Objects


Fixes



  • Fix texture size check in function UTexture.LoadFromFile().
  • Fix multiple params and return values for UObject:ProcessEvent().
  • Fix FAttachmentTransformRules and FDetachmentTransformRules.
  • Fix crash in function IsVehicleWheelInAir() and GetVehicleWheelSeerAngle().
  • Fix rear collision on Truck04 vehicle.
  • Fix rear seats for Hatchback vehicle.
  • Fix some sound effects for the Sports Car, Muscle Car and Golf Cart.
  • Fix a game crash related to texture sampling.
  • Fix possible crash when destroying doors, npcs and objects.
  • An invalid or custom gamemode on custom maps no longer crash the game.
  • Fix collision for the skyscapper buildings from the last update.
  • Fix bug where you don't die when hitting the ground during skydive.


Improvements



  • Function LoadPak() no longer requires RootPath and ContentPath parameter. These are now optional.
  • Increase remote event string length to 65536
  • Increase remote event max arguments to 14.
  • Increase chat message length to 255.
  • Increase remote event table dimensions to 5.
  • Improve performance when the game loads existing package files/assets from disk.
  • Improve night lighting and increase star intensity.
  • Print a message in the devlog on network connection error
  • Reduce game pak size by another 3GB
  • Performance improvements in Townhall.
  • Improve file download speed when connecting to a server.
  • Improve acceleration on steep slopes for some vehicles.
  • Increase ground clearance for Sports Car and Hatchback vehicle.
  • Increase vehicle braking force and acceleration on all vehicles.
  • Slightly reduce Golf Cart maximum speed.
  • Improve Sports Car driver animation.
  • Increase ground traction for all vehicles.
  • Add proper sounds for the Steampunk vehicle.


Other changes



  • Disable halloween fog.
  • New game startup video sequence.
  • Remove Vulkan support.



- AActor
SetActorRelativeLocation
SetActorRelativeRotation
RecreatePhysicsState
- UKismetMathLibrary
MakeRotationFromAxes
FindLookAtRotation
MakeRotFromX
MakeRotFromY
MakeRotFromZ
MakeRotFromXY
MakeRotFromXZ
MakeRotFromYX
MakeRotFromYZ
MakeRotFromZX
MakeRotFromZY
ComposeRotators
RotatorFromAxisAndAngle
ClampAxis
NormalizeAxis
FindClosestPointOnLine
GetForwardVector
GetRightVector
GetUpVector
NormalizedDeltaRotator
ProjectVectorOnToVector
RandomUnitVector
RandomPointInBoundingBox
RandomUnitVectorInConeInRadians
RandomUnitVectorInConeInDegrees
CreateVectorFromYawPitch
GridSnap_Float
Abs
Sin
Asin
Cos
Acos
Tan
Atan
Atan2
Exp
Log
Loge
Sqrt
Square
RandomFloatInRange
GetPI
GetTAU
DegreesToRadians
RadiansToDegrees
FClamp
NormalizeToRange
MapRangeUnclamped
MapRangeClamped
MakePulsatingValue


Server changes



  • Add wildcard support for package.json.
  • Increase hostname length to 260 characters.
  • Fix player not respawning after skydive death.
  • Terminal will now be disabled instead of crashing the server if it is not supported by the host.
  • Update Lua to 5.4.2, plugins must be recompiled with the latest OnsetSDK or they might not work.
  • Update Steamworks SDK.
  • Add function GetPackageFiles(PackageName).
  • Add function BroadcastRemoteEvent(EventName, ...).


Update your WorldDoors.lua script from the "default" package for the new map changes.

Plugins must be recompiled with the new OnsetSDK in order to work with the 1.4.0 server.

Halloween Update 1.3.2

Cemetery



For the Halloween update Erwann designed a spooky cemetery near the race track and prison.





Truck






Other changes




  • Support .m4a audio files.
  • Increase SetSoundPitch limit to 10.
  • Event OnPlayerCrouch can now be cancelled.
  • Parameter "radius" in CreateSound3D is now optional.
  • Pak files can now be placed in the %LocalAppData%\Onset\Saved\PakFiles directory, bypassing the 2GB download limit.
  • Weapon equip should not be possible when playing certain animations.
  • Add Set/GetPlayerJumpZVelocity.
  • Adjust moon position so that it rises at ~21:00 and goes down at ~6:00, fixes dark lighting in early and late night.
  • Prefer aiming over sprinting, sprinting will be stopped when a player wants to aim.
  • Update Unreal Engine to 4.25.4
  • Function DrawTextureEx parameters now reflect the same parameters as described here: https://docs.unrealengine.com/en-US/...ure/index.html
  • Add Cast function to cast between different types of Unreal components and actors.
  • The global fog intensity has been increased for the Halloween styled update.



- Expose UActorComponent
    GetOwner
- Expose USceneComponent
    SetVisibility
    AttachToComponent
- Expose UPrimitiveComponent
    SetRenderCustomDepth
    SetCollisionResponseToChannel
    SetCollisionResponseToAllChannels
- Expose UShapeComponent
- Expose UCapsuleComponent
    SetCapsuleHalfHeight
    GetUnscaledCapsuleHalfHeight
    SetCapsuleRadius
    GetUnscaledCapsuleRadius
    SetCapsuleSize
- Expose ECollisionResponse
- Expose EBlendMode
- Expose FVector2D
    X
    Y
    DotProduct
    DistSquared
    Distance
    CrossProduct
    Max
    Min
    Set
    GetMax
    GetAbsMax
    GetMin
    Size
    SizeSquared
    GetRotated
    Normalize
    IsNearlyZero
    IsZero
    ClampAxes
    GetAbs
    InitFromString
- Expose UWorld:GetFirstPlayerController
- Expose APlayerController
- Expose AController
    GetCharacter
    GetPawn
    GetControlRotation
    GetDesiredRotation
    IsPlayerController
    SetControlRotation
- Expose APawn
    AddControllerYawInput
    AddControllerYawInput
    AddControllerPitchInput
    GetControlRotation
    AddMovementInput


Server changes


  • Function StopPackage now takes an optional "reason" parameter that is being printed to the console.
  • Add config for the new Truck vehicle.


Prophunt



Many of the new functions are being used in the prophunt script. There will be a fully playable prophunt server hosted by me in the future.

It's open source, feel free to contribute to it.

https://github.com/BlueMountainsIO/prophunt



v1.3.2 Patch 1

  • Fix UWorld:GetActorsByClass
  • Improve vehicle suspension. Should fix weird tire behavior sometimes.
  • Add another collision to Truck4 for the rear wheels.
  • Increase ground clearance for SportsCar and Hatchback.
  • Increase vehicle braking force for all vehicles and acceleration for some vehicles.
  • Increase file download frequency. Should download faster now.
  • Landscape fixes near the quarry and cemetery.
  • Client event OnPlayerWeaponShot now has the weaponid as the first parameter like on the server.
  • New objects: keyboard, mouse, cups, land and sink.
  • Fix 3d engine sounds for muscle car, sports car and golf cart.
  • Add AActor:SetActorRelativeLocation and AActor:SetActorRelativeRotation

Onset 1.3.1

Apartment Prefab



Erwann has been working on an apartment prefab that can be spawned anywhere on the map.









Prefab 01a without furniture.
/Game/Geometry/Prefabs/PF_Apartment_01a
Prefab 01b with furniture as seen in the pictures.
/Game/Geometry/Prefabs/PF_Apartment_01b

Spawning the apartment interior from Lua.
local BlueprintClass = "/Game/Geometry/Prefabs/PF_Apartment_01b"
local Location = FVector(0.0, 0.0, 0.0)
local Rotation = FRotator(0.0, 0.0, 0.0)
GetWorld():SpawnActor(UClass.LoadFromAsset(BlueprintClass), Location, Rotation)


New vehicles



Hatchback





Steampunk





Buggy





Buggy Hotrod





Police Truck





Fire Department Truck





Firefighter



/Game/CharacterModels/Firefighter/Meshes/SK_Firefighter



Female model



/Game/CharacterModels/Female/Meshes/SK_Firefighter



Other changes


- Add missing parameters to OnPlayerLeaveVehicle and make it work for streamed players as well.
- ECC_GameTraceChannel3 now overlaps by default
- Re-enable AI system on Onset's map.
- Turkish translation for the main menu. Thank you to ErmesGames#8782!

The new vehicles have been added to the server. No other changes to the server were made.

Onset 1.3.0

Client changes



Custom maps



The long awaited feature has finally arrived. You can now load maps/level from the Unreal Engine in Onset.

See the Developer Wiki on how to get started with Custom Maps.

https://dev.playonset.com/wiki/Custom_Maps

First public playable custom maps:

Office



Factory Map



Town Hall







Elevator



Lua package for the town hall elevator.

https://github.com/BlueMountainsIO/OnsetLuaScripts/tree/master/elevator

[previewyoutube="ET8OuSNAtaM;leftthumb"]


Pancake House Interior





New City Skyscraper





Rescue Helicopter





Camper RV



[previewyoutube="4CpHj0uLHFs;leftthumb"]



Hazard Suit



/Game/CharacterModels/HazardSuit/Meshes/SK_HazardSuit



Client Console



For a more convenient development you can open the game console and add your own commands. OnConsoleInput
o open the console press one of the default keys: ~, ß, ^

You can add console keys to this ini file: %LocalAppData%\Onset\Saved\Config\WindowsNoEditor\Input.ini


ConsoleKeys=´

Note that developer mode (-dev) must be enabled for the console to work.

Press the console key two times to get the large console from the top of the screen.



UnrealLua


UWorld:
GetMapName()
GetActorsByClass(Class)
GetAllActorsWithTag(Tag)

USkeletalMesh:
GetBounds()
GetBoundingBox()

UStaticMesh:
GetBounds()
GetBoundingBox()

UClass:
LoadFromAsset(Asset)

USceneComponent:
GetWorldLocation()
GetWorldRotation()
GetWorldScale3D()

UActorComponent:
SetComponentTickEnabled(bEnabled)
IsComponentTickEnabled()
SetComponentTickInterval(TickInterval)
GetComponentTickInterval()

AActor:
ActorAddTag(Tag)
ActorRemoveTag(Tag)
SetActorTickEnabled(bEnabled)
IsActorTickEnabled()
SetActorTickInterval(TickInterval)
GetActorTickInterval()
SetRootComponent(NewSceneRootComponent)

Exposed class types:
ALight, APointLight, ASpotLight, ARectLight

Exposed enums:
ETraceTypeQuery, EDrawDebugTrace

FVector static functions (see https://docs.unrealengine.com/en-US/API/Runtime/Core/Math/FVector/index.html)
PointsAreSame
PointsAreNear
PointPlaneDist
Dist
Distance
DistSquared
DistSquaredXY
BoxPushOut
RadiansToDegrees
DegreesToRadians

UKismetSystemLibrary static functions
LineTraceSingle
SphereTraceSingle
BoxTraceSingle
CapsuleTraceSingle
LineTraceMulti
SphereOverlapActors
BoxOverlapActors
CapsuleOverlapActors
GetDisplayName

FBox:
Min
Max
IsValid
ComputeSquaredDistanceToPoint
ShiftBy
MoveTo
GetCenter
GetCenterAndExtents
GetClosestPointTo
GetExtent
GetSize
GetVolume
Intersect
IntersectXY
Overlap
IsVectorInside
IsBoxInside
IsInsideOrOn
IsVectorInsideXY
IsBoxInsideXY
BuildAABB

FSphere:
Center
W
Equals
Intersects
GetVolume
IsSphereInside
IsVectorInside

FBoxSphereBounds:
Origin
BoxExtent
SphereRadius
ComputeSquaredDistanceFromBoxToPoint
SpheresIntersect
BoxesIntersect
GetBox
GetBoxExtrema
GetSphere
ExpandBy

FPlane:
W
PlaneDot
Normalize
Flip


Example line trace usage:

local Start = GetPlayerActor():GetActorLocation()
local End = Start + (GetPlayerActor():GetActorForwardVector() * FVector(200.0, 200.0, 200.0))
local bResult, HitResult = UKismetSystemLibrary.LineTraceSingle(GetPlayerActo r(), Start, End, ETraceTypeQuery.TraceTypeQuery1, true, {}, EDrawDebugTrace.ForDuration, true, FLinearColor(1.0, 0.0, 0.0, 1.0), FLinearColor(0.0, 1.0, 0.0, 1.0), 10.0)
if bResult == true then
print(bResult, HitResult)
end


This example will trace 200 cm in front of the player. It can also be used to get a reference to any existing actor placed on the map. For example to hide existing meshes on the map.

Spawning a Blueprint:

GetWorld():SpawnActor(UClass.LoadFromAsset("/Game/Geometry/ModularPrison/Blueprints/BP_GuardTower"), FVector(0, 0, 0), FRotator(0, 0, 0))

Other changes



- Set max timer limit to 1024
- Fix IsVehicleSeatOccupied, GetVehicleDoorLocation seat parameter starting at 1
- Fix AddComponent for USkeletalMeshComponent
- Expose ASkeletalMeshActor and make it spawnable with SpawnActor using ASkeletalMeshActor.Class()
- Add GetInputMode()
- Reset draw color on disconnect
- Fix OnPlayerEnterVehicle event for vehicles with 2 doors
- Add OnConsoleInput event for the client console.
- Make GetObjectBoundingBox behave like GetVehicleBoundingBox
- LoadPak now returns true if the pak was already loaded.
- Make playerid optional (default: -1) in GetPlayerActor
- Show number of pending files to download when connecting to a server
- Don't put package is failed state if a script is empty
- AddEvent, AddRemoteEvent, AddCommand now returns success status

Server changes



- SetObjectMoveTo is now much more accurate.
- Add dimension events: OnPlayerChangeDimension, OnVehicleChangeDimension, OnText3DChangeDimension, OnPickupChangeDimension, OnObjectChangeDimension, OnNPCChangeDimension, OnDoorChangeDimension.
- Add created events: OnObjectCreated, OnVehicleCreated, OnText3DCreated, OnPickupCreated, OnNPCCreated, OnDoorCreated
- Fix timeout for players when downloading files.
- Functions AddEvent, AddRemoteEvent, AddCommand now returns success status.
- Add OnObjectStopMoving event.
- Fix a rare event crash.

Update your WorldDoors.lua from the default package.
The elevator package is available in the package folder of the 1.3.0 server. Add it to have elevators in your town hall

Onset 1.2.2

Client changes



Custom connect screen



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="t-OYr2jkmfE;leftthumb"]

Replace animation sequences



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.

Custom animation blueprint support



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="y4x0ZQ6lqW0;leftthumb"]

Custom Discord Client Id



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)


WebUI load server content



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.

New vehicles



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

New footstep sounds



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

Lua 5.4 Update



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

UnrealLua API



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


Client side commands



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.

Other changes


- 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.


Server changes



Update Lua to 5.4



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

Console Input



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)




Other changes



- 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)

Client changes



Unreal Engine upgrade to 4.25



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.


Load time improvements



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.

Landscape Performance



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.

View Distance



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.



New sky and lighting



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


Game size reduction



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

Material/Shader improvements



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.

New interior



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



Other changes




  • 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)


Server changes



  • 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.

YRPF



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

Client changes



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="cib399OtNo8;full"]

Skid effects
[previewyoutube="mwrGKEWH8rs;full"]

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="XEGIzvKOoec;full"]

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()

Server changes



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.


What's next?


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

Client changes



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


Server changes



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

Client changes



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="MKZpJF-0CBc;full"]

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


Server changes



  • 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)