XaiJu
I Am Legion Reborn
I Am Legion Reborn

patreon


Unofficial Dev Tools - Dev Status - 09 - 12 -24

Hey everyone, hope you're having a good week so far. I've been working on wrapping up the code for the launcher so I can get that released with all the new suite of tools for the community, including the multiplayer tools for joining each other without hassle.

I kept running into edge cases with my auto-heal code, which was previously designed to just capture the essentials of each script and then be able to write the changes into an already formed version of the script. This turned out to be problematic, because who the hell has the time to review every written script to ensure it was exported successfully, especially with official updates.

So I took a new approach, which is taking a bit longer but now the code stores a highly readable and writable version of the code in the ScriptConfig for that script and uses that data to then be able to export the exact same script as the original script. The goal here is that if the scriptConfig regex pattern is able to write the entire original script successfully, and a new data0.pak could be written by the engine and run in the base code, then the Scriptconfigs are flexible enough for full modification and additional content injection.

Here is an example of the data if anyone is interested, this is part of a scriptable object class that was written for storing the data for each script within the 6 games:

This data can then be used to check for syntax errors and compare against newer versions of the code, but most importantly, builds out a solution for the code to find and identify values within the script independent of byte line data such as a WinMerge comparison. It doesn't care which line the data is on, only that it knows what the previous values were or what modified values you want to load in and apply.

%YAML 1.1

%TAG !u! tag:unity3d.com,2011:

--- !u!114 &11400000

MonoBehaviour:

  m_ObjectHideFlags: 0

  m_CorrespondingSourceObject: {fileID: 0}

  m_PrefabInstance: {fileID: 0}

  m_PrefabAsset: {fileID: 0}

  m_GameObject: {fileID: 0}

  m_Enabled: 1

  m_EditorHideFlags: 0

  m_Script: {fileID: 11500000, guid: 8d21e3752ce5f334ebdb212ab54ffed3, type: 3}

  m_Name: sync_action_damage_presets_scr

  m_EditorClassIdentifier:

  editFlags: 0

  fileName: sync_action_damage_presets

  fileExtension: .scr

  scriptRelativePath: scripts/damage

  definitionType: 0

  filePath: ph/source/data0.pak/scripts/damage/sync_action_damage_presets.scr

  category: 0

  parsingMethod: 9

  regexPatterns:

  - {fileID: 11400000, guid: dfba0494e4b464b429858692b121b21e, type: 2}

  project: 5

  isLocked: 0

  fileSize: 8434

  scriptId:

  definitions: []

  parsedContainers:

  - containerName: Imports

    fields:

    - identifier: Imports.hit_reaction.def

      value: hit_reaction.def

      isDisabled: 0

      isUseStatement: 0

    - identifier: Imports.damage_effects.def

      value: damage_effects.def

      isDisabled: 0

      isUseStatement: 0

    - identifier: Imports.damage_flags.def

      value: damage_flags.def

      isDisabled: 0

      isUseStatement: 0

  - containerName: '"takedown_kill_ragdoll_impact"'

    fields:

    - identifier: main.SDamagePreset."takedown_kill_ragdoll_impact".DamageDefinition

      value: '"Player_HumanTakedown"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_kill_ragdoll_impact".ReactionPreset

      value: '"melee_ragdoll@damage_reaction_presets.scr"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_kill_ragdoll_impact".ImpactPhysicsForce

      value: '"0.9"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_kill_ragdoll_impact".DamageFlags

      value: EDamageFlag_Stealth

      isDisabled: 0

      isUseStatement: 0

  - containerName: '"takedown_kill_ragdoll"'

    fields:

    - identifier: main.SDamagePreset."takedown_kill_ragdoll".DamageDefinition

      value: '"Player_HumanTakedown"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_kill_ragdoll".ReactionPreset

      value: '"melee_ragdoll@damage_reaction_presets.scr"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_kill_ragdoll".DamageFlags

      value: EDamageFlag_Stealth

      isDisabled: 0

      isUseStatement: 0

  - containerName: '"takedown_elite"'

    fields:

    - identifier: main.SDamagePreset."takedown_elite".DamageDefinition

      value: '"Player_TakedownDamage#"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_elite".ReactionPreset

      value: '"melee_light_hit@damage_reaction_presets.scr"'

      isDisabled: 0

      isUseStatement: 0

  - containerName: '"takedown_default"'

    fields:

    - identifier: main.SDamagePreset."takedown_default".DamageDefinition

      value: '"Player_TakedownDamage#"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_default".ReactionPreset

      value: '"melee_ragdoll@damage_reaction_presets.scr"'

      isDisabled: 0

      isUseStatement: 0

    - identifier: main.SDamagePreset."takedown_default".DamageFlags

      value: EDamageFlag_Stealth

      isDisabled: 0

      isUseStatement: 0

The above information can then be written into a script that is checked against the original script to confirm that by using only the data stored within the ScriptConfig, it can write a compatible script with the game engine. The below attached files were all generated by the Unofficial Dev Tools.


Once the auto-heal and easy merge code is finished, I'll be releasing a new version of the launcher with a rebuilt version of IALR using these tools. Here is a list of all the systems I'm writing for the full release of the Unofficial Dev Tools:

More updates coming soon! Thanks for your continued interest and support in this vast project, slowly but surely! Happy gaming.

Unofficial Dev Tools - Dev Status - 09 - 12 -24 Unofficial Dev Tools - Dev Status - 09 - 12 -24 Unofficial Dev Tools - Dev Status - 09 - 12 -24 Unofficial Dev Tools - Dev Status - 09 - 12 -24

More Creators