FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login
    1. Home
    2. Raysor
    The current pre-release of the client ("pioneer" in the version) is only compatible to itself. So you can only play with other testers. Please be aware!
    R
    Offline
    • Profile
    • Following 0
    • Followers 1
    • Topics 7
    • Posts 11
    • Groups 0

    Raysor

    @Raysor

    8
    Reputation
    2
    Profile views
    11
    Posts
    1
    Followers
    0
    Following
    Joined
    Last Online

    Raysor Unfollow Follow

    Best posts made by Raysor

    • Why does some mod not have a "Write review" button on FAF?

      Hello,

      I've noticed some inconsistencies with how mods are displayed in the FAF client regarding the "Write review" button:

      • Some mods have the "Write review" button and reviews.
      • Some mods don’t have the button at all, yet somehow they still have reviews.

      I recently uploaded a mod to the FAF Mod Vault, but it doesn’t have the "Write review" button. I would like players to be able to leave reviews and ratings for my mod.

      Could someone explain the criteria or process that determines whether a mod gets the "Write review" button? Is there something I need to configure or update during the submission process?

      Thanks in advance for your help!

      posted in I need help
      R
      Raysor
    • RE: M28AI Devlog (v238)

      Hi there,
      First of all, thanks for all the hard work on M28AI – it’s a great addition to the game (Can't play without it to be honest).

      I’ve encountered a recurring issue during my games where Ground and Air factories disappear after being upgraded to T2 or T3. This doesn’t just affect human players, but also the AI itself. Once the upgrade finishes, the factory vanishes completely and doesn’t complete the transition.

      For now, I’ll stick with the previous version of the mod so I can play without issues. This post is just meant to inform you in case it hasn’t been reported yet.

      Here's the log:
      game_24956583_copy.log

      posted in AI development
      R
      Raysor
    • Crash Report Help Needed: "bad allocation" Error

      Hello everyone,

      I've encountered a perma freeze (Not crashing though) in FAF during a game, and I’m not sure what might be causing it. Below is the relevant portion of the log file, where it reports a crash in DoSimBeat() with the error "bad allocation." Unfortunately, I'm not familiar enough to pinpoint the issue.

      Here’s a snippet from the log:

      info: Sim crashed hard in DoSimBeat(): bad allocation
      ...
      debug: Session time: 00:54:38 Game time: 00:48:54 Heap: 808.8M / 729.2M
      ...
      

      It looks like memory usage was a factor, but I’m uncertain if it’s tied to my mods or a specific in-game event.

      Mods I'm Using:
      UI Mods:
      • Advanced Selection Info
      • Advanced Target Priorities
      • BrewLAN: Gameplay Mods
      • Build Range Preview
      • Phillip Crofts Soundtrack
      • Penguin's Icon Mod
      • Redux ACU Icons
      • SupCom Vanilla Music FAF
      • ShareMouse
      • Supreme Economy Next
      • Supreme Score Board
      SIM Mods:
      • BlackOps FAF: ACUs
      • BlackOps FAF: EXUnits
      • BlackOps FAF: Unleashed
      • BrewLAN
      • BrewLAN: Additional Unit Mods
      • Buildable Lower Tiers Experimentals in Factories for TotalMayhem
      • Damage Numbers
      • EXPERIMENTAL UNIT HEALTH X1.5
      • Kennel Engineering Stations for All
      • M28AI
      • No Build Restrictions in Campaign
      • No Friendly Fire
      • PJ Infrastructure Pack
      • Reclaim Turret Aggressive
      • Smart Tactical Missiles
      • T4 Energy Generators
      • Total Mayhem

      If anyone has experience debugging this kind of crash or sees a potential mod conflict that might be triggering the issue, I’d really appreciate your insights. Could it be memory-related due to heavy mod usage, or is something else at play here?

      Let me know if more information is needed.

      Thanks in advance for your help!

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • How to Dynamically Modify Threat Levels in Unit Blueprints Based on Unit Stats

      Hi everyone,

      I’m working on creating a mod for FAF (Forged Alliance Forever) that dynamically modifies the Threat Levels of all units during runtime, without manually editing .bp files. The goal is to implement a system that calculates new Threat Levels based on the unit's stats (like DPS, range, and HP) and applies these changes automatically.

      This idea stems from my desire to make my games with the M28AI mod more interesting and balanced. I love the M28AI, but I’ve noticed that units with very low Threat Levels tend to be too passive, while units with overly high Threat Levels can be excessively aggressive. By dynamically recalculating Threat Levels to better represent the capabilities of each unit, I believe this will not only improve how M28AI plays but also enhance the performance of other AI mods or systems that rely on Threat Levels for decision-making.

      The specific section I want to adjust in the .bp files looks like this:

      Defense = {
          AirThreatLevel = 0,
          ArmorType = 'Normal',
          EconomyThreatLevel = 0,
          Health = 13000,
          MaxHealth = 13000,
          RegenRate = 0,
          SubThreatLevel = 0,
          SurfaceThreatLevel = 50,
      },
      

      What I Want to Achieve:

      • Dynamically calculate Threat Levels using relevant unit stats:
        • Combat units: Use stats like DPS, range, and HP to compute values for AirThreatLevel, SurfaceThreatLevel, and SubThreatLevel.
        • Economic units: Use mass and energy production to calculate EconomyThreatLevel.
      • Apply these calculations at runtime without manually editing .bp files, ensuring compatibility with all units (including those added by other mods).
      • Ensure compatibility with AI mods like M28AI and potentially improve how AI systems interact with units based on their adjusted Threat Levels.

      My Current Approach:

      I believe this can be achieved by overriding the UnitBlueprint function in Lua, which processes unit blueprints during game loading. The idea would be to intercept each blueprint, extract the relevant stats, calculate new Threat Levels, and update the blueprint accordingly.

      Here’s a rough outline of how I imagine the logic:

      local OldUnitBlueprint = UnitBlueprint
      
      function UnitBlueprint(bp)
          if bp.Defense then
              -- Example calculation for combat Threat Levels
              local dps = 0
              local range = 0
              local hp = bp.Defense.MaxHealth or 0
      
              if bp.Weapon then
                  for _, weapon in ipairs(bp.Weapon) do
                      dps = dps + (weapon.Damage or 0) * (weapon.RateOfFire or 1)
                      range = math.max(range, weapon.MaxRadius or 0)
                  end
              end
      
              -- Calculate new Threat Levels dynamically
              if dps > 0 and range > 0 then
                  bp.Defense.SurfaceThreatLevel = (dps * range) / 1000 + (hp / 1000)
              end
      
              -- Example calculation for economic Threat Levels
              if bp.Economy then
                  local massProd = bp.Economy.ProductionPerSecondMass or 0
                  local energyProd = bp.Economy.ProductionPerSecondEnergy or 0
                  bp.Defense.EconomyThreatLevel = (massProd * 10) + (energyProd / 10)
              end
          end
      
          -- Call the original function to ensure other mods and game features work
          OldUnitBlueprint(bp)
      end
      

      Questions:

      • Is overriding UnitBlueprint the best way to dynamically adjust Threat Levels based on unit stats?
      • For extracting stats like DPS and range from weapons, is there a better approach than iterating over bp.Weapon?
      • How can I ensure compatibility with other mods and make sure my mod loads after them?
      • Are there any potential performance concerns with dynamically calculating Threat Levels for all units during loading?
      • Has anyone implemented a similar system, and are there best practices or caveats I should keep in mind?

      Why This Matters:

      My main objective is to improve how AI mods like M28AI handle units, but I suspect this would also apply to other AI mods or systems I haven’t yet considered. By dynamically calculating Threat Levels based on unit stats, I hope to make the AI’s decision-making more logical and engaging, resulting in more interesting games.

      I’d love to hear any advice, suggestions, or experiences you might have. Thank you in advance for your help!

      posted in I need help
      R
      Raysor
    • RE: Crash Report Help Needed: "bad allocation" Error

      Hi everyone,

      After extensive testing, I’ve encountered a consistent freeze during games in FAF, accompanied by the same "bad allocation" error in the logs. Despite disabling various mods one at a time, the freeze persists no matter which mods I remove. This leads me to conclude that the issue might be related to the sheer number of mods I'm running, rather than any single one of them being at fault.

      That said, I’d really prefer not to remove my mods altogether. Is there a solution to increase the game's memory capacity to handle this? I’ve already tried using a 4GB patch, but it seems incompatible with FAF.

      Does anyone have advice or experience with managing large mod loads and memory limits in FAF? Are there any alternative solutions to enhance memory allocation or optimize performance for heavily modded setups?

      Thanks in advance for your help.

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • Seeking Help to Develop a Mod: Adjusting Commander Collision Properties

      Hello everyone,

      I’m reaching out to ask for help with a mod I’m currently developing for Supreme Commander: Forged Alliance. The goal of this mod is to adjust the collision properties of the commanders for each faction.

      The main idea behind this change is to address a specific frustration I’ve encountered during gameplay: the commander often gets overwhelmed by units in the base, making it difficult to move effectively. By tweaking the collision properties, I hope to create a smoother experience where the commander can navigate better without feeling bullied by every single unit around.

      This is my first time tackling a mod of this kind, so I’m looking for guidance on how to approach these changes and ensure they integrate naturally into the game. Any advice, pointers, or resources you can share would be greatly appreciated, thank you!

      posted in I need help
      R
      Raysor
    • RE: Seeking Help to Develop a Mod: Adjusting Commander Collision Properties

      @Uveso
      Thank you so much for your help, I really appreciate it! I just have one question: if we change the hitbox, will it also affect the interaction with projectiles? I’m concerned it might cause issues and make the commander untouchable, which I definitely want to avoid.

      posted in I need help
      R
      Raysor

    Latest posts made by Raysor

    • RE: M28AI Devlog (v238)

      Hi there,
      First of all, thanks for all the hard work on M28AI – it’s a great addition to the game (Can't play without it to be honest).

      I’ve encountered a recurring issue during my games where Ground and Air factories disappear after being upgraded to T2 or T3. This doesn’t just affect human players, but also the AI itself. Once the upgrade finishes, the factory vanishes completely and doesn’t complete the transition.

      For now, I’ll stick with the previous version of the mod so I can play without issues. This post is just meant to inform you in case it hasn’t been reported yet.

      Here's the log:
      game_24956583_copy.log

      posted in AI development
      R
      Raysor
    • Token Retrieval Exception During Login (Client v2025.2.1)

      Hi everyone,

      I just wanted to report the exact error I'm currently getting when trying to log into FAF, in case it helps the dev team with debugging. I’ve seen the announcement acknowledging the login issues and that the team is already working on it, so this post is just to provide additional details for reference.

      Client Version: 2025.2.1
      com.faforever.client.login.TokenRetrievalException: <!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;max-width:60rem;padding-left:1.5rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{font-size:1.5rem;font-weight:500;line-height:2.25rem}@media (width <= 720px){.h2{font-size:1.25rem;line-height:1.5rem}}#challenge-error-text{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+);background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme:dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt={cvId: '3',cZone: "hydra.faforever.com",cType: 'non-interactive',cRay: '94233e1a3be752de',cH: 'bYfaloKRCemWR1cZQtiIvBNqJYzs.NmqPCeXEQ.aJdA-1747654020-1.2.1.1-McQ45TnO8FiBm0sPKfF1wVEkUbaggPkIYv6Q7kYcv6DTg5kUWu_N0_czCMmewuxe',cUPMDTk: "\/oauth2\/token?__cf_chl_tk=ytdn9ABBRcc7HW0gQbzTyfWs2iGMN4m3xcUHJSlFumY-1747654020-1.0.1.1-atDDa.tcVS8gQwQ04l9JuCh2DACiIe0XqNOyt7aZLhk",cFPWv: 'g',cITimeS: '1747654020',cTplC: 0,cTplV: 5,cTplB: 'cf',fa: "\/oauth2\/token?__cf_chl_f_tk=ytdn9ABBRcc7HW0gQbzTyfWs2iGMN4m3xcUHJSlFumY-1747654020-1.0.1.1-atDDa.tcVS8gQwQ04l9JuCh2DACiIe0XqNOyt7aZLhk",md: "sDsRNetzLfjfu22_hVbzu6WtJVFZB_cg34qbWsXUbGo-1747654020-1.2.1.1-_D0CMzmjWd_t4iXX2D4tUVctw1DF4SoBYh7HK.qCU42GEwV6_xdwZ0abBumluHHBjQ7MGvzHiqjYedQ17HKiqG1KUWCttikJrebrq.nMThx9j.iXoKLJpEqZCUvHWyv1BJC55zuNhKpLj4CC4trsrCOawnLpTroDt3k_TM364GxU2GRir7CeYBWkXtR9Zbf29tCD7AacyBQb9bHxXJLVXlCMv.uELKdTbH.sliOLjJUxYsEKBJ13WrXFvqMP7QundFfdQX.aaxV_USLJyBq5BrNHnI4VTnlbhhbejRySxVpYwS5Kstu43VXG.obRBIppt8do5qZ6fXoy8QIDN0n6OMf_0sBlNT0H2zHf.zTy6mAw7gNWL6FbZFnyRvd1jrvD8.Y0BK6LxAzeX9kpuC3QyDBw7BDPU9a_Ai6h5f5GQLzE4CwF5aQ9PggI4OFsA.4zrQA5WnMqSwczmZJHgEVAoEOF4cfV2b_N6nE._tsOrVHWuOO.WNlxu70pI4z9GOUkeTlPHmrStZcbYgveEwyZS.QPcj0WV_NHWpTh0H48VADgKkSRE64sj1eSjbDIG04mzb_D6ADz90pRF.uIRQd_.H_KzeieHvrdcj6o.r9NRcE6bM.ZZQVv_xhjTqPg1qqZ1.bEgJLYxRAblQelDsH13RwW3aq_AlHSMO32miW853tGya_nHtrKn6QmuBsmotR0KLHmEqjdUjzq3pJWnbJltRsn8WWKK2GI8NXn8ZZMyNGdYkvT2S6n3dTmQHGIASX5zjWy08T228XcEf1aH3Va5LhfjtcmUrae4PkV4trdqKXRetBYC2.WjHQW25ZCmNKGq11JeMYKQoCaCInYmCA_RZQbbf41hEEeBJzzlX5AmynATqKISEpiUHtGO.hJ1YIkiE6XZMuQ8jsvuzCwfI2.vM7N8KITEhELLLymuVpvTik",mdrd: "qMnqhUpsG0DLutuP6jQiqzmgJgQC_xLQnNVVogX1ES4-1747654020-1.2.1.1-5m3KmrXSjSeoGWn1l6QlkcqdVwX7fxE9UXCoLsxZjUGzriWs0Nr7naAEtu1LZsfxIao7fokbFOHPhAukU_wFZMzM2DMlECDmXonvngPruDMkClrFa9Uv0wcE_GYDhDXX7NnwqwDMO2hz3ZL8rIqvxnVcu4HU2nXzMA01exJ5GkjykYXT9RwRj4EP0RXJuUpyFuMz.KiZPPmy5YDdEJz61TSMqPEyqz5z4ozecpr1zeqdBsgDF4XOF3pEKInMLnP0AmJBRXTg.n.90slK8XVkSdetw3RYEAOZybJtqJrI6nMlqD8k0_6uqRO2NHPJB7udjW7_lQ3JQamkY1e8WaUVdXEkU4oJEGIC6iLIJ5FYYdXb5NwgvtqrBHpsTld9u076i3lYvgfbZn9BKgYeuT8A09E7L82yW0cA1HOt8h_bIZj9kL3BgEA2SaUP002xrS5gWUw30ko7stufDtBbrOdmKuziQ4Wjb4oZ_d870Nfcrg2QUBLZVPhQ9KRBehili736WHZtHJvfyb5g2pYJfm7SiJ7L35eLmlZiwJ4Aqiy8spmZaY9ckMIbxg2ChFZwlxECelSXZQCfuyiCE9UvafdS154hlE.xefjo4ePR3GfwFT6KBPt58aQdFdpRxx1ConABmqxt2a6GUnPA_X8KSQjHmbzrDNMK6h8941kvXbPBlxGcqGv.2PqaG6LKUf0ZFa.5.42hZ5Aa0Eo75m2RDzfipPTauVxQKGWhGOiKlSQ3sRVrlQcfP71EgldTh_t6Grr8D.CEpeSCsSDSgy2wU.wOfAx7DRfkB90wUeZzy6nczGQtcoOmNlhfYyTdu07yI5y.Ug3DvF8DUImQSpHGmjJvh9zdSGq2HEcZnESQysjqrToqvBukeSCpLt3uGJD2qRZBAantkkCahdvqHrL3mp_yIB9ghQwlxJGjAs03hkM1iF.UUMtHdW9St1BrKuW_OIsO_C2gj7rjHdTlazMdewT48I1Fv.0Gnk7TAOsYEOQzykhG3lyTV8Pi13Gu2Sne3LrKoGVIQSHAW_uOEC7c6mHKn3ohVamCm3NxIPrgtiLCelHHNt_4i6vvqZqLWnwa7DGr267BodZ9X70KxqwxNp.UAPQXY0RLZtEt.O3MIzU4apkEk8fiReR2xq11YF88_9i9KKzkttxanOUJju1A1BZaIRQwibRvjvwxL3yYzMg25IInL3hB7ww7GK9SM6h7tnOhuacNoP9lygRbFe8TEMo4iSlSrj5tRc3mIMO9StlmdaHeMj8WvxGVFAM.2uZk.GUucBkh3gmY6iz7wVCUHzD56Z4Qb0khS8LuQajOgIYSwe8qFYJTqdI.uwNqj4A1tWLSFxnHtgtdiUdvzQ_PZpDfyPQfU.U.RiKEVSJMNfJPja0RRXMR77hOvqEOA7wpuHWnPRis5RxXq0Q98hYfa3Ul51REYU4wwa9Gn1SK7PwxymapCLJJgsB3zIoYWuKmnQcuP4_MzHua5Qn05hsXLuOKuL2tncmMv_vYBTy.A2G7AjlTB3GqtNy75HSR2C0jnxNMqWrpp6F4b5iXrB74HOAE4Zyat9dfJ2t78VKYJM3ZPXyw.61yftqgxP9DOJAX3PJmY2epd0S5fYC3xo3MSa7Y0CmUpJ0n3COP6GYpQUfaXGo4mrli8IGs1F81I9ugmOvAAd6O0Edh.Wr8.o_UCqT8_SMQDo_BI3nOu45GAoYdEjx9H7DSkcdYTA2oWq1cerJQxNPXd4VndP5t3mXGRcT7XzPKgBKdZg1Vb4xglmB46lC8EqeyjZ7RjDWIX4FlFhPXSj0YRDTMIRgy7NngO_EyVE2x5UEGmo5sDrQaSVFebFJVjQST3gQo6twsEZ2_3jeDeYgATYeXfz_pFNo8kaoXb2rWEvn1hA.V1GQDtieT6w2xPpC3JjDFfocOJY89E8XupnG3X9Z9dnnAMOmZO02IvQFaX8_secrjVK3M8Fqge5MgVmEl6iYgYwrgpUCTqsQj1OHAWfPzMqW0eKbKuKNWvKAFAwvk5.RKJsBPx6yQOdaVdevRBck.O.JW3zqNfwf8IhvTcTeJz9aGaCr78qte3nbKj9qs2fDotMCch9B5.DTL_LBR7o.vu4VWVcTtEiQ9KHb0.vLV4bIGKkSIsqJPgQSQMwzB0OF6yrT_J_aONWw1gzFByjdYuXbeIj.IXLVIyD1rnlrnRS.vN1_f12XELfEWgAdn1kho.e6B..YvRhP37vmLVRB8.ajrIjrYpaMFSAGrYb64eKNExCEWmXwQjT8vLlov45rYEehas7LFbAi7Xxupkc.2A5uCS.hT7.m5othvVHZJJQBcs0KKlobBxxcGVZbMU6cPXT8iOvzyXL4f4GUMwNazsWbWdM_B83UJv15IZ7M5FQI1497BwrbDWGQf0aPmUne4L96VFtHKbwDlkVUwS5oyMDtVM2pTOZNmS9aYCgalatFgRfLaLBiejiIdjegM9zAiKBcnN.vRykjTID4Wdm8kr.29.1DRD14I8Tr3JD6gpC3wCDzS_u8YvrbwQL2iGjWkZDEL1Xqry7fDu.Ehr4R.9I9abWu7oJmVf00VTSdawby0h1JJMKS0fLO3hcYbHGQKyiBimHbPr.skf2thMIs1qSXllQhiO7jC26K2KyRe9LnjYR7OwstFziYWw1gW3MgWAXwgg1jMEItkdkjZAT0Z97S._1mpR_.cz7WgYdJjBuqAqs4iENljmB381xEUjCgYTGyrVZy2ItEqUrPt0Sw1nGcRL34.L4j6ZN46PizroDW58MGpM4xXCfn18r._uMqpRjjwrTa4owEpvmZhqr8RDoOnJLSaskFhKZA44GfqKeGUp4JdlEGFNdpDme0XBEVQfYPEo6vUicTFPxcGvK_JOs4O2OyffJ79OHu0osOEd2_l2t.VrrlshMaaTH2auqxTNSB4yVHhJ_spStSoDH3i7.kH2exW8hM8VGUYAOAjW6GXvjYkf3kTfg"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=94233e1a3be752de';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null, "\/oauth2\/token?__cf_chl_rt_tk=ytdn9ABBRcc7HW0gQbzTyfWs2iGMN4m3xcUHJSlFumY-1747654020-1.0.1.1-atDDa.tcVS8gQwQ04l9JuCh2DACiIe0XqNOyt7aZLhk" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>
      	at com.faforever.client.api.TokenRetriever.lambda$retrieveToken$1(TokenRetriever.java:110)
      	Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: 
      Assembly trace from producer [reactor.core.publisher.MonoFlatMap] :
      	reactor.core.publisher.Mono.flatMap
      	com.faforever.client.api.TokenRetriever.lambda$retrieveToken$2(TokenRetriever.java:110)
      Error has been observed at the following site(s):
      	*________Mono.flatMap ⇢ at com.faforever.client.api.TokenRetriever.lambda$retrieveToken$2(TokenRetriever.java:110)
      	|_       Mono.flatMap ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.lambda$exchangeToMono$3(DefaultWebClient.java:424)
      	|_ Mono.switchIfEmpty ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.lambda$exchangeToMono$3(DefaultWebClient.java:425)
      	|_ Mono.onErrorResume ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.lambda$exchangeToMono$3(DefaultWebClient.java:426)
      	*___________Mono.then ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient.releaseIfNotConsumed(DefaultWebClient.java:197)
      	|_                    ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.lambda$exchangeToMono$2(DefaultWebClient.java:426)
      	*________Mono.flatMap ⇢ at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultRequestBodyUriSpec.exchangeToMono(DefaultWebClient.java:421)
      	|_ Mono.doOnSubscribe ⇢ at com.faforever.client.api.TokenRetriever.retrieveToken(TokenRetriever.java:115)
      	|_      Mono.doOnNext ⇢ at com.faforever.client.api.TokenRetriever.retrieveToken(TokenRetriever.java:116)
      	|_           Mono.map ⇢ at com.faforever.client.api.TokenRetriever.retrieveToken(TokenRetriever.java:120)
      	|_      Mono.doOnNext ⇢ at com.faforever.client.api.TokenRetriever.retrieveToken(TokenRetriever.java:121)
      	|_          Mono.then ⇢ at com.faforever.client.api.TokenRetriever.loginWithAuthorizationCode(TokenRetriever.java:73)
      	*___________Mono.then ⇢ at com.faforever.client.user.LoginService.login(LoginService.java:70)
      	|_                    ⇢ at com.faforever.client.login.LoginController.loginWithCode(LoginController.java:278)
      Original Stack Trace:
      		at com.faforever.client.api.TokenRetriever.lambda$retrieveToken$1(TokenRetriever.java:110)
      		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132)
      		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
      		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
      		at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
      		at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299)
      		at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337)
      		at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097)
      		at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:145)
      		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
      		at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
      		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
      		at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413)
      		at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:455)
      		at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:509)
      		at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:819)
      		at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
      		at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
      		at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
      		at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      		at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1515)
      		at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1378)
      		at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1427)
      		at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
      		at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
      		at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      		at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
      		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      		at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
      		at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
      		at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
      		at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
      		at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
      		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
      		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      		at java.base/java.lang.Thread.run(Thread.java:1583)
      
      posted in I need help
      R
      Raysor
    • Game crashing: EXCEPTION_ACCESS_VIOLATION

      Hi everyone,

      I’ve been running into a frustrating issue with FAF, and I’m hoping someone here might have some insights or advice. Here’s the situation:

      EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0095854f attempted to write memory at 0x02fef000
      

      What’s Happening:

      The game keeps crashing, and based on the logs, it looks like it might have something to do with the M28AI mod—specifically the script M28Engineer.lua. From what I can tell, the script could be trying to interact with a "Game object" that’s already been destroyed. That’s just a theory though, and I’m open to any other ideas or suggestions.

      Key Things I’ve Noticed:

      1. Memory Exception (0xc0000005):
      The error EXCEPTION_ACCESS_VIOLATION (0xc0000005) shows up in the logs. As far as I know, this usually means that something tried to access memory it wasn’t supposed to. Maybe the game or mod is referencing something that doesn’t exist anymore?

      2. "Game object has been destroyed" Errors:
      I keep seeing this in the logs:

      warning: Error running lua script: ...er forged alliance\mods\m28ai\lua\ai\m28engineer.lua(14959): Game object has been destroyed
               stack traceback:
               	[C]: in function `?'
               	...er forged alliance\mods\m28ai\lua\ai\m28engineer.lua(14959): in function `ConsiderMinorLandZoneEngineerAssignment'
               	...er forged alliance\mods\m28ai\lua\ai\m28engineer.lua(17246): in function `?'
               	...mander forged alliance\mods\m28ai\lua\ai\m28land.lua(9279): in function <...mander forged alliance\mods\m28ai\lua\ai\m28land.lua:8599>
      

      It seems like the M28AI script is trying to work with an object that’s already been removed (like a dead unit or something).

      3. Repeated Errors Before Crash:
      These warnings repeat in a loop before the game finally crashes. I’m guessing this is putting too much pressure on the game or causing something to go wrong deeper down. The address (0x0095854f) being listed as an "Unknown symbol" doesn’t help much, but it’s definitely not normal.

      Summary:

      • The crashes seem tied to the M28AI mod interacting with destroyed objects.
      • The repeated "Game object has been destroyed" errors might be causing the invalid memory access (0xc0000005).

      I honestly don’t know for sure what’s causing this. The M28AI mod is the only one that keeps showing up in the logs, which is why I suspect it, but at the same time, I know it’s a very well-maintained and regularly updated mod, so I have my doubts. After countless games of trying to troubleshoot by removing almost every other mod in my list one by one, the crash still happened. The only mod I didn’t disable during all of this was M28AI.

      It’s also worth mentioning that the crash always seems to happen in late-game matches with lots of units, especially when there are nukes or Experimental Bombers involved. Disabling other mods helped extend the time I could play before the crash, but it didn’t stop it entirely. At first, I thought this was a RAM issue, but after trying everything I could think of to address that, I’m back to square one and stuck again.

      I’ve attached my log file for this game here : game_24026844.log. Any help figuring this out would be super appreciated! Let me know if you need any other info or if there’s something else I should try.

      Thanks in advance!

      Mod List:

      UI:

      Advanced Selection Info
      Advanced target priorities
      BrewLAN: Gameplay mods
      Build range Preview
      Phillip Crofts Soundtrack
      Penguin-s Icon Mod
      Redux ACU Icons
      SupCom Vanilla Music FAF
      SharedMouse
      Supreme Economy Next
      Supreme Score BoarD

      SIM:

      BlackOps FAF: ACUs
      BlackOps FAF: EXUnits
      BlackOps FAF: Unleashed
      BrewLAN
      BrewLAN: Additional unit mods
      Damage Numbers
      EXPERIMENTAL UNIT HEALTH X1.5
      Kennel Engineering Stations For All
      M28AI
      Production Buffers Extra
      Quantum Resource Generators
      Reclaim Turret Aggressive
      T2 T3 Storage FAF Rebalanced
      Total Mayhem

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • RE: Seeking Help to Develop a Mod: Adjusting Commander Collision Properties

      @Uveso
      Thank you so much for your help, I really appreciate it! I just have one question: if we change the hitbox, will it also affect the interaction with projectiles? I’m concerned it might cause issues and make the commander untouchable, which I definitely want to avoid.

      posted in I need help
      R
      Raysor
    • Seeking Help to Develop a Mod: Adjusting Commander Collision Properties

      Hello everyone,

      I’m reaching out to ask for help with a mod I’m currently developing for Supreme Commander: Forged Alliance. The goal of this mod is to adjust the collision properties of the commanders for each faction.

      The main idea behind this change is to address a specific frustration I’ve encountered during gameplay: the commander often gets overwhelmed by units in the base, making it difficult to move effectively. By tweaking the collision properties, I hope to create a smoother experience where the commander can navigate better without feeling bullied by every single unit around.

      This is my first time tackling a mod of this kind, so I’m looking for guidance on how to approach these changes and ensure they integrate naturally into the game. Any advice, pointers, or resources you can share would be greatly appreciated, thank you!

      posted in I need help
      R
      Raysor
    • How to Create New Upgrades for ACU and Support Commanders?

      Hi everyone,

      I’m currently working on a mod project and want to create new upgrades for the ACU (Armored Command Unit) and Support Commanders. I’ve seen plenty of mods that modify the existing upgrades, but I haven’t come across any that add entirely new ones. Because of this, I’m struggling to find examples or references to guide me.

      If anyone has experience with this or knows where I could start, I’d really appreciate some help! Specifically:

      • Are there specific files or scripts I should look into for implementing new upgrades?
      • Do I need to modify certain game mechanics or data structures to make this work?

      I’d love any pointers, tips, or even just a general idea of what the process might look like. Thanks in advance for your time and help!

      posted in I need help
      R
      Raysor
    • RE: Crash Report Help Needed: "bad allocation" Error

      Hi everyone,

      After extensive testing, I’ve encountered a consistent freeze during games in FAF, accompanied by the same "bad allocation" error in the logs. Despite disabling various mods one at a time, the freeze persists no matter which mods I remove. This leads me to conclude that the issue might be related to the sheer number of mods I'm running, rather than any single one of them being at fault.

      That said, I’d really prefer not to remove my mods altogether. Is there a solution to increase the game's memory capacity to handle this? I’ve already tried using a 4GB patch, but it seems incompatible with FAF.

      Does anyone have advice or experience with managing large mod loads and memory limits in FAF? Are there any alternative solutions to enhance memory allocation or optimize performance for heavily modded setups?

      Thanks in advance for your help.

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • RE: Crash Report Help Needed: "bad allocation" Error

      Too big for it to get uploaded, maybe if I could upload it I would have.
      Here's a drive link then : https://drive.google.com/file/d/1uA5UOUl5IwPe9nDYq7_ApYnflfQYklt4/view?usp=sharing

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • Crash Report Help Needed: "bad allocation" Error

      Hello everyone,

      I've encountered a perma freeze (Not crashing though) in FAF during a game, and I’m not sure what might be causing it. Below is the relevant portion of the log file, where it reports a crash in DoSimBeat() with the error "bad allocation." Unfortunately, I'm not familiar enough to pinpoint the issue.

      Here’s a snippet from the log:

      info: Sim crashed hard in DoSimBeat(): bad allocation
      ...
      debug: Session time: 00:54:38 Game time: 00:48:54 Heap: 808.8M / 729.2M
      ...
      

      It looks like memory usage was a factor, but I’m uncertain if it’s tied to my mods or a specific in-game event.

      Mods I'm Using:
      UI Mods:
      • Advanced Selection Info
      • Advanced Target Priorities
      • BrewLAN: Gameplay Mods
      • Build Range Preview
      • Phillip Crofts Soundtrack
      • Penguin's Icon Mod
      • Redux ACU Icons
      • SupCom Vanilla Music FAF
      • ShareMouse
      • Supreme Economy Next
      • Supreme Score Board
      SIM Mods:
      • BlackOps FAF: ACUs
      • BlackOps FAF: EXUnits
      • BlackOps FAF: Unleashed
      • BrewLAN
      • BrewLAN: Additional Unit Mods
      • Buildable Lower Tiers Experimentals in Factories for TotalMayhem
      • Damage Numbers
      • EXPERIMENTAL UNIT HEALTH X1.5
      • Kennel Engineering Stations for All
      • M28AI
      • No Build Restrictions in Campaign
      • No Friendly Fire
      • PJ Infrastructure Pack
      • Reclaim Turret Aggressive
      • Smart Tactical Missiles
      • T4 Energy Generators
      • Total Mayhem

      If anyone has experience debugging this kind of crash or sees a potential mod conflict that might be triggering the issue, I’d really appreciate your insights. Could it be memory-related due to heavy mod usage, or is something else at play here?

      Let me know if more information is needed.

      Thanks in advance for your help!

      posted in Game Issues and Gameplay questions
      R
      Raysor
    • How to Dynamically Modify Threat Levels in Unit Blueprints Based on Unit Stats

      Hi everyone,

      I’m working on creating a mod for FAF (Forged Alliance Forever) that dynamically modifies the Threat Levels of all units during runtime, without manually editing .bp files. The goal is to implement a system that calculates new Threat Levels based on the unit's stats (like DPS, range, and HP) and applies these changes automatically.

      This idea stems from my desire to make my games with the M28AI mod more interesting and balanced. I love the M28AI, but I’ve noticed that units with very low Threat Levels tend to be too passive, while units with overly high Threat Levels can be excessively aggressive. By dynamically recalculating Threat Levels to better represent the capabilities of each unit, I believe this will not only improve how M28AI plays but also enhance the performance of other AI mods or systems that rely on Threat Levels for decision-making.

      The specific section I want to adjust in the .bp files looks like this:

      Defense = {
          AirThreatLevel = 0,
          ArmorType = 'Normal',
          EconomyThreatLevel = 0,
          Health = 13000,
          MaxHealth = 13000,
          RegenRate = 0,
          SubThreatLevel = 0,
          SurfaceThreatLevel = 50,
      },
      

      What I Want to Achieve:

      • Dynamically calculate Threat Levels using relevant unit stats:
        • Combat units: Use stats like DPS, range, and HP to compute values for AirThreatLevel, SurfaceThreatLevel, and SubThreatLevel.
        • Economic units: Use mass and energy production to calculate EconomyThreatLevel.
      • Apply these calculations at runtime without manually editing .bp files, ensuring compatibility with all units (including those added by other mods).
      • Ensure compatibility with AI mods like M28AI and potentially improve how AI systems interact with units based on their adjusted Threat Levels.

      My Current Approach:

      I believe this can be achieved by overriding the UnitBlueprint function in Lua, which processes unit blueprints during game loading. The idea would be to intercept each blueprint, extract the relevant stats, calculate new Threat Levels, and update the blueprint accordingly.

      Here’s a rough outline of how I imagine the logic:

      local OldUnitBlueprint = UnitBlueprint
      
      function UnitBlueprint(bp)
          if bp.Defense then
              -- Example calculation for combat Threat Levels
              local dps = 0
              local range = 0
              local hp = bp.Defense.MaxHealth or 0
      
              if bp.Weapon then
                  for _, weapon in ipairs(bp.Weapon) do
                      dps = dps + (weapon.Damage or 0) * (weapon.RateOfFire or 1)
                      range = math.max(range, weapon.MaxRadius or 0)
                  end
              end
      
              -- Calculate new Threat Levels dynamically
              if dps > 0 and range > 0 then
                  bp.Defense.SurfaceThreatLevel = (dps * range) / 1000 + (hp / 1000)
              end
      
              -- Example calculation for economic Threat Levels
              if bp.Economy then
                  local massProd = bp.Economy.ProductionPerSecondMass or 0
                  local energyProd = bp.Economy.ProductionPerSecondEnergy or 0
                  bp.Defense.EconomyThreatLevel = (massProd * 10) + (energyProd / 10)
              end
          end
      
          -- Call the original function to ensure other mods and game features work
          OldUnitBlueprint(bp)
      end
      

      Questions:

      • Is overriding UnitBlueprint the best way to dynamically adjust Threat Levels based on unit stats?
      • For extracting stats like DPS and range from weapons, is there a better approach than iterating over bp.Weapon?
      • How can I ensure compatibility with other mods and make sure my mod loads after them?
      • Are there any potential performance concerns with dynamically calculating Threat Levels for all units during loading?
      • Has anyone implemented a similar system, and are there best practices or caveats I should keep in mind?

      Why This Matters:

      My main objective is to improve how AI mods like M28AI handle units, but I suspect this would also apply to other AI mods or systems I haven’t yet considered. By dynamically calculating Threat Levels based on unit stats, I hope to make the AI’s decision-making more logical and engaging, resulting in more interesting games.

      I’d love to hear any advice, suggestions, or experiences you might have. Thank you in advance for your help!

      posted in I need help
      R
      Raysor