• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

Mod/Map setup for Main Menu mod

ForrestMarkX

Member
Jun 10, 2019
18
14
30
Texas
This a tutorial for mappers and modders to enable there mods to work with the main menu replacment that I am working on. These will not affect your map or mod in anyway in the default game as the values are only read from my main menu.

Maps

This one is rather simple, my mod will automatically generate a KFMapSummary for the user that downloaded it. All you need to do is add a .int into your workshop upload.

The .int needs to be named the same as the map. In this example I will be using KF-Biolapse by Delta.

KF-Biolapse.int
Code:
[MapInfo]
DisplayName="Biolapse"
Author="Delta"
Description="The intel from Operation Desolation has provided us with some valuable information on the location of Kevin Clamely. Tied with surveillance footage from one of the largest Horzine Production Facilities in Europe lead us to some troubling news; The Patriarch has returned to the facility, deactivated the containment fail-safes and resumed specimen production. The classified information obtained from the Jungle Installation show that the facility has capabilities to nearly double Zed populations based on what we have already encounted. There is hope, intel also obtained show that there is a command override that can stop production entirely. However...the override is on the last level of an underground facility beneath the surface - currently occupied by either the Patriarch, or one of his colleagues. Enter the facility and descend to the depths of the underground installation. Eliminate all specimen outbreaks and stop the facility from any further specimen production. This mission will need to succeed at all costs."
UIPath="UI_MapPreview_Custom.UI_MapPreview_KF-Biolapse"

Output:
20190724100337_1.jpg

Mutators

This one is alittle more complicated, you need to add code to your mutator to generate a KFMutatorSummary when it is run and a .int for info on the Mutator.

Code:
function PreBeginPlay()
{
    local KFMutatorSummary          MutatorSummary;
    local array<string>             Names;
    local int                       i;
    local bool                      bFoundConfig;
    
    Super.PreBeginPlay();
    
    GetPerObjectConfigSections(class'KFMutatorSummary', Names);
    for (i = 0; i < Names.Length; i++)
    {
        if( InStr(Names[i], string(Class.Name)) != INDEX_NONE )
        {
            bFoundConfig = true;
            break;
        }
    }
    
    if( !bFoundConfig )
    {
        MutatorSummary = New(None, string(Class.Name)) class'KFMutatorSummary';
        MutatorSummary.ClassName = PathName(Class);
        MutatorSummary.SaveConfig();
    }
}

The .int you will be creating will have to be named the same as the package that contains the mutator, for this example I will be using my mod Classic Mode.

KFClassicModeSrv.int
Code:
[ClassicMode]
FriendlyName="Classic Mode"
Description="Classic Mode is a mod for Killing Floor 2 that tries to simulate the gameplay and various system from Killing Floor 1.||Here is a list of changes.|* Classic styled HUD elements|* Classic Lobby Menu and Trader Menu|* Custom trader voice|* Custom Music|* Serverside perks|* Custom perks/weapons/characters|* Ability to set event zeds globally or map specific|* Ability to set max monsters globally or map specific|* Custom chatbox that supports client configured color tags (^1 = Red, ^2 = Green)|* Classic style zeds|* Adjusted weapons to fit the KF1 stats|* Endless and Objective mode support|* Many different configurations to change gameplay|* Loads of clientside features that can be toggled or disabled|* Partial support for Controlled Difficulty|* Added elements from Unofficial Mod|* Classic Main Menu that supports mutators"

[xVotingHandler]
FriendlyName="Voting Handler"
Description="Added automatically, do not add manually!"

Output:
B4C8F7C7DD7A152DF422379A44A0C831E0D18B2F.jpg
 
Last edited:
  • Like
Reactions: duk6046 and RockMax