EA28 - Custom Mission update

Ravenfield

Fight upon the Ravenfield together with your Blue allies! Take down those pesky Reds using helicopters, tanks, guns, and active ragdoll physics!

[b]IMPORTANT INFO[/b] [i]If you're having trouble with menu buttons not working and mods not loading correctly, this is because you're running the game with the RavenM mod installed. RavenM is currently not supporting EA28. You can either remove RavenM entirely to use EA28, or switch to the RavenM compatible branch, found by going to your steam library -> right click Ravenfield -> Properties -> Betas -> Select ravenm-compatible in the dropdown. Please keep in mind that DLL mods such as RavenM and other mods that need to be manually installed have no official support inside the game. This means that any updates to the official game will cause these mods to break![/i] Hey all, Here's the latest Ravenfield update, featuring loads of improvements to the modding tools, including the new ability for modders to create their own story missions. One of the goals with Ravenfield's official campaign is to bring the same tools used to create official missions to the modders, and with this update all of the existing tools are now available for modders to use! The main bulk of this update comes in the form of new Trigger System components. These components can be linked together using the Ravenfield mod tools for Unity to create story driven experiences or even entire new game modes - all without having to code anything. If you're interested in creating your own story missions, now is a great time to jump in! You can find everything you need on the [url=https://ravenfieldgame.com/modding.html]official modding page[/url]. Here are a two halloween-themed custom missions that have been created by Ravenfield's modding community thus far: [img]{STEAM_CLAN_IMAGE}/28768162/7f81a5cfa48e5a1236f1cc67bb73a8e9130e61d6.png[/img] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=3066215406]Penumbra[/url] by Sofa [img]{STEAM_CLAN_IMAGE}/28768162/915380fc60a4a21fd9b017eba872191d300bffc1.png[/img] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=3067823028]Isolated[/url] by Hans, NefariousDrH, RadioactiveJellyfish, LeDiegue3 and Aspel There are even more missions to try out under the workshop Scripted Mission tag. You can also check out the new and improved Island, featuring an all new quarry themed capture point with multiple new paths. While most of the level layout remains intact, there have been minor tweaks here and there to improve sightlines and to create more natural paths between capture points. [img]{STEAM_CLAN_IMAGE}/28768162/2b9ab7003306171690a24a9caed207812fef50fa.png[/img] Oh and don't worry, you can find the old island map [url=https://steamcommunity.com/sharedfiles/filedetails/?id=3082004507]on the workshop[/url]. [h2]Full change log[/h2] [b]Game changes[/b] [list] [*]Updated steamworks.net to latest version, which should solve an issue where the steam api could not be initialized on Apple M1 systems, resulting in the menu not appearing correctly. [*]Capture points take slightly longer to neutralize due to the respawn logic change. [*]Made the distance you can fall before ragdolling consistent between different gravity settings. [*]Mouse look is now enabled while dead. [*]Added a very fast acceleration when starting moving/changing direction. This makes it easier to get into exact positions by tapping movement keys. [*]Fixed an issue where benchmark mode didn't work [*]Added healing/resupply sounds to the new ingame ui, and the healthbar/ammo heading bar will now blink when resupplying or healing. [*]When restarting a rfc map, the file is no longer unloaded and reloaded first, resulting in much shorter load times on reloads [*]Kicking an upside down vehicle that is light will now cause it to flip over, allowing you to recover crashed vehicles more easily. [*]You can no longer phase through level geometry when getting on a ladder [*]You must now look towards a ladder to be able to get on it [*]Fixed an issue where you would sometimes not be able to get off ladders if you were spamming the use button [*]Fixed a bug where melee weapons would not hit rigidbodies etc on the default layer [*]Fixed a bug where the first person camera would sometimes be zoomed out when aiming down sights. This is now fixed by clamping the ADS FOV value so it's always slightly lower than the current default FOV [*]Fixed a bug where the spectator camera was rendering 3d hud objects. [*]Fixed player actor Accessory rendering when switching between first person/third person cameras. [/list] [b]Respawn logic redesign[/b] [list] [*]The game will now cluster contested spawn points and regular spawn points into regions. [*]Whenever an attacker is inside any spawn point region, the capture point will be considered under attack. [*]Each region is penalized for having an attacker or a defender that is taking fire inside. [*]When spawning, the region with the lowest penalty score is picked. [*]When a capture point is not under attack (or if no contested spawn point container is assigned), the regular spawn points will be used. [*]Due to this change, only non-moving spawn points are allowed when using a contested spawn point container. For modded special cases with moving spawn points such as flags attached to large vehicles etc, you can still use moving regular spawn points by not assigning a contested spawn point container. [/list] [b]Map changes[/b] [list] [*]Island has received an overhaul, completely redesigning the old fort area into a quarry. This area still retains most of the old layout, but with a new theme and a couple of new paths. The old Island map is no longer available ingame, but you can find it in the workshop as "Island (2016)". [*]Other parts of the island has also received slight redesigns, making paths/lanes more clear. [*]Minor updates to river delta sawmill area [*]Made citadel tree vis colliders slightly bigger so they block AI views a bit more than before [*]Added more sawmill modular props for use in the ingame map editor [*]Added new island props to the ingame map editor [*]Added "Show Objectives" key prompt to the start of the citadel mission Modding changes [*]Added source mod/source bundle tracking to all prefabs, which allows proper shading reloading etc if needed, should solve some rare cases of pinkeye on Mac/Linux. [*]Added SpriteActorDatabase and IngameDialogActorDatabaseProvider component that are used to bundle custom sprite actors for the ingame dialog system. To use, just instantiate the IngameDialogActorDatabaseProvider component pointing to your SpriteActorDatabase anywhere in your map/mutator. As long as that object is alive, you can reference your custom actors by name through the TriggerDialog or via the RS ingame dialog API. [*]Added the following components to the whitelist (meaning they can now be loaded from custom maps/content mods): Cloth, Legacy water components, Rigidbody joints [*]Added full support for RFL metadata, allowing modders to change the display name, loading screen background image/decoration 3d model, visibility on instant action mode etc. [*]Added Actor imposters, these are characters that can follow predefined ScriptedPathGroup paths but lack all AI, Colliders, Hitboxes, Ragdolls etc. These imposters can be used for cutscenes or could be placed in the background in inaccessible areas of a map/mission to fill out the battlefield with more action. Because they don't have AI and related features, they are more optimized than regular actors. [*]Fixed a bug where boat navmeshes would not generate on water planes. [*]Terrains inside RFLs exported with Unity 2020.3 will keep the original materials unless a shader reload is requested due to platform incompabilities. This allows modders to freely change the terrain materials. [*]Fixed a bug where modded vehicle weapon names would not be assigned correctly and instead throw an error in the console. [*]ActorSkinData assets used in TriggerSpawnSquad/TriggerSpawnPlayer/TriggerSpawnImposters will now be preprocessed and retargeted based on the unity rig version. This means they are now also compatible with skins made for the Unity 5 rig, but you need to set up the correct rig version in the skin's Rig Settings. [*]Added mod save data, and exposed to RS (see ScriptedBehaviour.modSaveData). This is used to save and load values between game sessions. Each mod has its own save data, meaning that maps/mutators/etc in the same mod can access the same values. [*]Save data is found in %USERPROFILE%\AppData\LocalLow\SteelRaven7\RavenfieldSteam\SaveData\Mods*mod_name*.save (on windows) in plaintext xml (so it's easier to debug). [*]Added Destructible takesMeleeDamage, takesSplashDamage and takesImpactDamage (damage from being rammed by vehicles or other rigidbodies), all default to off. [*]Vehicles placed in maps will no longer be removed when the map loads. This means you can now have one-off vehicles placed in your map, which is useful for story missions etc. Vehicles spawned like this can be referenced in the trigger system by using the VehicleInstance reference type. [*]Fixed a bug where navmesh would sometimes not generate through terrain holes on custom levels [/list] [b]Added SynchronizeEditorTransform component.[/b] This is a component that is only available in test mode (by testing a map via the Unity RF Tools). With this component you can synchronize the gameobject transform and all children with renderers from the game to the editor. Here's how to set it up: [list] [*]Place the component on the gameobject you want to synchronize (typically a vehicle). Only once synchronized game object is allowed at a time! [*]Run test mode on the map to load it up ingame. Press play mode in the editor so both the editor and the game is running at the same time. [*]Press Q ingame to connect to the editor. After a few seconds the two should be connected, any the component's gameobject and children will be synchronized. (The game may freeze for a few seconds while the connection is being set up) [*]One use case for this would be to record yourself driving a vehicle ingame. You can use the Unity Recorder package to record the synchronized vehicle movement keyframes as an animation, which can then be used as a cutscene in a scripted mission. [/list] PLEASE NOTE: The SynchronizeEditorTransform component is very naively implemented, only allowing one gameobject and children to be synchronized and using quite a high data rate. However it should work well for recording individual vehicles, which is the use case I had in mind. As this component is very niche, I'm not planning on expanding or optimizing it. [b]New Trigger components[/b] [list] [*]TriggerEquipWeapon, used to equip weapons on actors [*]TriggerEndMatch, triggers the victory/defeat sequence and optionally returns the game to the main menu. [*]TriggerExplosion, simulates and explosion effect, damaging and pushing all nearby actors and vehicles [*]TriggerEffect, can play screenshake, fades, audio events directly from triggers [*]TriggerChangeScene, can load a new map from the trigger system (by specfying the .rfl or .rfld name), or return to the menu [*]TriggerOnSquadRequestsNewOrder, sends a signal whenever an AI squad requests a new order. Having this component in your map prevents the AICommander from automatically issuing orders. [*]TriggerFireWeapon, used to force fire a weapon from triggers [*]TriggerHelicopterLanding, causes a helicopter to land at a specific landing zone (or take off again) [*]TriggerSquadRecalculatePath, forces a squad to recalculate the path to their current order destination. Useful for cases where other triggers modify the map and the navmesh, and squads must now take alternate paths. [*]TriggerUpdateVehicleInfo, used to update the vehicle stats [*]TriggerExitVehicle, forces actors to leave a vehicle [*]TriggerDeployParachute, forces actors to deploy their parachute [*]TriggerSpawnImposterActors, used to spawn actor imposters that follow a predefined ScriptedPathGroup. [*]TriggerChangeGravity, change the gravity of all objects in the scene [*]TriggerChangeSpawnpointContainer, change the spawn points of a capture point from triggers. [*]TriggerUpdateFog, change the scene fog [*]TriggerUpdateAmbientLighting, change the scene ambient lighting [*]TriggerChangeMaterial, changes a renderer material or the skybox material [*]TriggerHideUI, hide elements of the built in UI [*]TriggerShowInputPrompt, used to display a key prompt [/list] [b]Trigger System improvements[/b] [list] [*]WeaponState data for TriggerSpawnSquad and TriggerSpawnPlayer can be used to control the ammo/etc of individual weapons when spaning. [*]Added lots of new conditions to TriggerCondition [*]TriggerDialog now has actor blip sound overrides so you can change the character voice audio clip [*]Fixed a bug where triggering the same TriggerDialog component multiple times would sometimes cause the dialog system to stop showing up. [*]Fixed a bug where TriggerOnActorDeath would trigger before the game had fully registered that actor's death, potentially leading to misleading results in TriggerCondition and similar systems. [*]TriggerIssueSquadOrder can now be used to issue an AI command order (basically letting the game auto-assign a new order that makes sense) [*]TriggerDelay can now optionally block signals if one is already being delayed. [*]Added WeaponReference to Trigger System, this type is now available as a signal context. [*]Added TriggerUsable tooltip interaction values that control how the tooltip is shown/hidden when used. [*]Added SpawnBehaviour values to VehicleSpawner, can be set to only spawn vehicles from scripted events (RS/Trigger system). This will prevent the game from automatically spawning/respawning the vehicle. [*]Added VehicleInfo values to TriggerSpawnVehicle, used to configure spawning health etc. [*]Added canDeployParachute to spawn ActorInfo [*]Added FireWeapon modifier to ScriptedPaths, use this to control the firing of weapons on actors or imposters following the path. [*]TriggerUpdateActorInfo can set/increment current health value. [*]TriggerSpawnPrefab can optionally propagate the signal to the first TriggerReceiver component on the instantiated prefab's root GameObject. This is used to more easily run trigger logic on a spawned prefab, and keeps the original signal's context. [*]Fixed a bug where TriggerSquadFormation was not working [*]Added player seat change rules for TriggerSpawnVehicle [*]Added spawnSource field to TriggerSpawnSquad which can be used to control whether or not dead actors can be used for spawning (which is the default settings), or if a new actor should always be created (this can be useful if you want to spawn an actor for a specific map-related purpose but don't want to interfere with the actors in an existing game mode) [*]Added per-signal documention of all trigger system signals. This includes when the signal is sent, and what context it provides to the receiving trigger component. [*]Added WeaponEntry hidden flag that can be used to hide a weapon from being pickable in instant action mode (It can still be spawned in via trigger/Ravenscript) [*]Added automatic signal canceling if a signal has been propagated through more than 200 components. This also logs an error with the last component the singal passed through. If this happens, you most likely have an infinite signal loop in your map/mod. [*]Deprecated TriggerUpdateVehicle as it is functionally the same as TriggerUpdateVehicleInfo. The component will continue to work but will not be distributed with future RFTools packages. [/list] [b]Ravenscript changes[/b] [list] [*]Exposed Joint to RS [*]Exposed Exposed spawnpointContainer/contestedSpawnpointContainer to RS [*]Exposed TriggerVolumes to RS [*]Exposed ScriptedBehaviour.modSaveData to RS [*]Added new TriggerScriptedSignal.Send(name) function call (without signal context argument) that generates a signal with an empty signal context. [*]Exposed GameManager.gameDifficulty to RS [/list] [b]RFTools additions[/b] [list] [*]Added metadata file system. Metadata are .json files next to the mod files that can either be manually edited through a text editor or changed via built in metadata editors. [*]Added RFL metadata editor window that can be used to change level display name, loading screen background image, visibility in instant action mode and more. (Access via Ravenfield Tools -> Map -> Metadata Editor in the top menu bar). [*]Removed unintended animation that was previously included in RFTools which wasn't used by the project [*]Maps using the Trigger System will now automatically be tagged as such on the workshop. This allows players to more easily find maps with extra functionality on top of the built in game rules. [*]Updated all trigger component classes to be up to date with the main project, so more documentation should now be available. [*]Updated the workshop item upload window, it now shows an error message if it fails to connect to steam [*]Updated the workshop item file labeling system, now metadata files such as .json, .png and .obj are visible, and also any files that aren't allowed which prevents the item from uploading. [*]Added browse buttons to the workshop item file labeling lists, this opens the corresponding folder in your file explorer so you can more easily see the files [*]Added Trigger Prefabs (found in RFTools/Prefabs/Trigger Prefabs. You can drag and drop these into your map to add cool predefined behaviours: [*]Area Secure Bark Trigger Group: Triggers a dialog when all enemies inside the supplied trigger volume die IF the player is inside the same volume trigger. This is useful for making your pals go "Area Secure" and say other very tactical one-liners. [*]Force Vehicle Pilot Look Direction: Hook this up to a vehicle to force the pilot to look in a certain direction when not engaging targets. [*]Spawn Player Squad Reinforcements: When triggered and the player has less than 2 squadmates (the number can be configured), will spawn reinforcements that automatically join the player squad. [*]ZOMBIES!: Provides basic zombie behaviour to the enemy team, making them rush towards the player at all times. You can activate/deactivate this object to dynamically turn this behaviour on or off during gameplay. [*]Trigger Spawn Vehicle Airdrop prefab: spawns a vehicle in a parachute, and causes the closest AI squad to try to enter the vehicle when it lands [/list] As always, I hope you'll enjoy these new features and look forward to seeing more cool story missions designed by the community! /Johan (SteelRaven7)