Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Groups
Collapse
Brand Logo
  1. Home
  2. Announcements
  3. Development Updates
  4. 2025-08-10

2025-08-10

Scheduled Pinned Locked Moved Development Updates
1 Posts 1 Posters 127 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • purpleP Offline
    purpleP Offline
    purple
    replay
    wrote last edited by
    #1

    Welcome to another development update.
    As we mentioned before, we only post updates if we have something to show and today we do.

    Changelog:

    Scripting:

    Today we're showing off the first aspects of our unified (read: consistent environment between server and client code) scripting system.
    It is powered by WebAssembly, providing a fast and very secure environment for executing untrusted code.

    Our current "user side implementation", referenced as guest from here on, is written in C#, which was chosen due to its simplistic syntax and language features that map nicely upon the games existing scripting layer.

    Other guest languages will be supported and will benefit from an already fleshed out ABI developed for this current C# guest.
    Guest WASM modules are downloaded and executed upon connecting to a game server or hot (re)loaded whilst in a server session.
    They are isolated from each other and can only interact outside of their context through strictly defined interfaces.
    They can interface with existing game code and control flow through multiple means.

    A few examples of what is possible (Watch the attached video for a visual demonstration):

    Please be aware that hooking syntax is WIP

    Hooking scripted or native game function, no matter if global, static or class members:

    9a03e0f1-53ba-48fd-b971-bfe521fc6570-PSM_Hooking.JPG

    Calling arbitrary functions:

    aa0ad780-eb6a-4e1f-96ee-46fca36e8627-FunctionCalling.PNG

    Implementing a fully networked chat, using a JS/HTML/CSS UI in CEF as frontend with client and server guest code for activation and transport:

    4b89579f-c051-4476-9fe5-938e0989aba3-ChatExample.png

    PSM (PlayerStateMachine) Control:

    With the addition of guest scripting and more specifically hooking, we paved the way for manipulating state machine control flow into whatever way you desire for your game modes.
    A demonstration of this can be seen in the hooking screenshot or the attached video.
    Instead of fading to black and transitioning into a "Death" state, the psm is kept in a "probing for transition" state until user input (Think a "Press E to get up" or a "Press E to revive your friend") is received.

    DLC Management:

    Whilst we would personally recommend everyone to purchase the Phantom Liberty DLC (its really good!), some people might not be able to afford the purchase and may desire to run their server without DLC content.
    We managed to implement hot-loading of DLC replacement content into an already running engine state (This is where we display our PreGame menu) based on a specific server ConVar

    This means no restarting of the client depending on server configuration when joining a specific type of server

    Media:

    Youtube Video

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Groups