• 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/

KF Altering the Menu

PrometheusTitan

Grizzled Veteran
Nov 11, 2013
77
1
Hi guys,

So I've been trying to play around with the GUI in KF, I want to see if I can redesign the menus.

The Intro graphics and things are simple, just a case of replacing them with a new image in the intro.rom.

How would you go about altering the menus in KF such as Designs etc.?

For example, KF's main menu, you have:

Killing floor logo top left, then text below with menu links:

Multiplayer
Host Game
Solo
Etc..

DLC images below that

KF Specimins to the right of the screen


How would you edit that menu? I thought it would be a case of the menu.rom but it doesn't appear to have any impact on the game if its edited or not.

I figure it will require some system file editing, any idea which ones?

Like I say this is just a mini project of mine to learn more about the Unreal Engine.

Thank you
 
http://forums.tripwireinteractive.com/showthread.php?p=1349854
why make 2 of the same thread though...

Short answer: you can't.
You might be able to change the words using localization files, but that's it.


Apologies for the double thread.

Is that a: You can't or a you don't know how to so we'll say you can't?

There must be a way to do it, you can practically alter every other aspect of the engine, you're telling me the menu's are untouchable unless you're a dev?

I'm already poking around to GUI menu files, something, somewhere will eventually change.
 
Upvote 0
Apologies for the double thread.

Is that a: You can't or a you don't know how to so we'll say you can't
It's a you can't as in you can't. If you change the KFMod package, you won't be able to play online since that package is definitely check-summed against the server's version.
There must be a way to do it, you can practically alter every other aspect of the engine, you're telling me the menu's are untouchable unless you're a dev?
I'd prefer you learn how Unreal Engine 2 works before making blanket statements and asking loaded questions, thanks.
I'm already poking around to GUI menu files, something, somewhere will eventually change.
Ok.
 
Upvote 0
[...]
Short answer: you can't.
You might be able to change the words using localization files, but that's it.
Well, as far as I know it is fully possible. The only inconvenient thing is that the new menu wouldn't be whitelisted and therefore you can never gain any progress when it is activated.
When you have created your menu you have to assign it in the KillingFloor.ini by replacing this:

[Engine.GameEngine]
MainMenuClass=MyPackage.MySuperMenu

It's a you can't as in you can't. If you change the KFMod package, you won't be able to play online since that package is definitely check-summed against the server's version.
There is no need to modify the KFMod package, the same rules apply to menus as to every other class, subclassing.

I'd prefer you learn how Unreal Engine 2 works before making blanket statements and asking loaded questions, thanks.
Please don't act like this unless you know everything.
 
Upvote 0
It's a you can't as in you can't. If you change the KFMod package, you won't be able to play online since that package is definitely check-summed against the server's version.

My days of playing KF or wanting to play it online are now over, I'm more interesting in picking at its barebones to see what I can learn to hopefully semi-set myself up for KF2's modding. (I know its 2 different engines, but you get the point)

I'd prefer you learn how Unreal Engine 2 works before making blanket statements and asking loaded questions, thanks.

Well that's what i'm trying to do, play around with the game to learn it.

Well, as far as I know it is fully possible. The only inconvenient thing is that the new menu wouldn't be whitelisted and therefore you can never gain any progress when it is activated.
When you have created your menu you have to assign it in the KillingFloor.ini by replacing this:

[Engine.GameEngine]
MainMenuClass=MyPackage.MySuperMenu

Now we are talking, I knew there would be a way. Like I said previously, I'm not wanting to play the game anymore, I want to mod it to its very core!

When you say MyPackage.MySuperMenu, are we talking about a .U file here?

Any ideas where I would find the menu KF already has so I can make a copy, manipulate it and start this epic journey?

Your help is invaluable!
 
Upvote 0
[...]
When you say MyPackage.MySuperMenu, are we talking about a .U file here?

Any ideas where I would find the menu KF already has so I can make a copy, manipulate it and start this epic journey?
[...]
Yes, MyPackage is generally a *.u file here and MySuperMenu is the class.
You find KF's menu here: KFGui.KFMainMenu

I am not sure what's the least subclass you should derive from for your own menu, but I'd say to at least subclass UT2K4GUIPage if you want to start from scratch.
 
Upvote 0
Yes, MyPackage is generally a *.u file here and MySuperMenu is the class.
You find KF's menu here: KFGui.KFMainMenu

I am not sure what's the least subclass you should derive from for your own menu, but I'd say to at least subclass UT2K4GUIPage if you want to start from scratch.


Brilliant, thank you very much. I have already started to crack the main menu screen, managed to remove the DLC links and buttons for multiplayer, Host Game etc... just what I wanted to do.

Thanks again
 
Upvote 0
Hi all,

So I've cracked the menu editing to a certain degree...

See screenshot: http://www.planettitan.co.uk/MainMenu.png

My problem now is that I can't seem to get the text to change.

Instead of saying Solo, I want it to read New Game.

My code as modified in KFMainMenu.uc

Code:
Begin Object Class=GUIButton Name=InstantActionButton
        CaptionAlign=TXTA_Left
        CaptionEffectStyleName="TextButtonEffect"
[COLOR="Red"][B][I]        Caption="New Game"[/I][/B][/COLOR]
        //bUseCaptionHeight=True
        FontScale=FNS_Medium
        StyleName="ListSelection"
[COLOR="red"][B][I]        Hint="Begin the nightmare..."[/I][/B][/COLOR]
        WinTop=0.290000
        WinLeft=0.050000
        WinWidth=0.200000
        WinHeight=0.035
         TabOrder=1
        bFocusOnWatch=True
        OnClick=KFMainMenu.ButtonClick
        OnKeyEvent=InstantActionButton.InternalOnKeyEvent
    End Object
    b_InstantAction=GUIButton'KFGui.KFMainMenu.InstantActionButton'

I have changed the fields in red, yet the standard text of "Solo" still stands in game and not my modded version.

Is there something super seeding this class? Is there another file with default properties extending KFMainMenu?

If so, is there anyway to tell? Or am I missing something in the rest of the code here?

Any help would be sweet, thank you.
 
Last edited:
Upvote 0
Is there something super seeding this class? Is there another file with default properties extending KFMainMenu?

If so, is there anyway to tell? Or am I missing something in the rest of the code here?

Any help would be sweet, thank you.
That leads into what I was referring to earlier. I believe KFGui.int (a localization file) is probably still being used and overriding your changes. You can find it in the system folder.
 
Upvote 0
That leads into what I was referring to earlier. I believe KFGui.int (a localization file) is probably still being used and overriding your changes. You can find it in the system folder.
In this special case this is true, but it happens on grounds of PrometheusTitan having forgotten to use his button. I will show...

[...]
Code:
Begin Object Class=GUIButton Name=InstantActionButton
        CaptionAlign=TXTA_Left
        CaptionEffectStyleName="TextButtonEffect"
[COLOR=Red][B][I]        Caption="New Game"[/I][/B][/COLOR]
        //bUseCaptionHeight=True
        FontScale=FNS_Medium
        StyleName="ListSelection"
[COLOR=red][B][I]        Hint="Begin the nightmare..."[/I][/B][/COLOR]
        WinTop=0.290000
        WinLeft=0.050000
        WinWidth=0.200000
        WinHeight=0.035
         TabOrder=1
        bFocusOnWatch=True
        OnClick=KFMainMenu.ButtonClick
        OnKeyEvent=InstantActionButton.InternalOnKeyEvent
    End Object
    [COLOR=DarkOrange]//b_InstantAction=GUIButton'KFGui.KFMainMenu.InstantActionButton'[/COLOR] [COLOR=DarkOrange]This is wrong, you are assigning the KFGui button here therefore the button is using the localization file for the caption. The button you have created above is never in use![/COLOR]
[COLOR=DarkOrange]    [COLOR=Lime]b_InstantAction=GUIButton'MyPackage.MyGui.InstantActionButton' //Now you are referencing the right button[/COLOR][/COLOR]
 
Upvote 0
In this special case this is true, but it happens on grounds of PrometheusTitan having forgotten to use his button. I will show...

Also works perfectly, Thank you!

For my next question... How would you go about disabling the lobby section. You know, the one where the players wait until there are enough players to start, then everyone hits ready. Aka, this screen: http://www.planettitan.co.uk/LobbyScreen.png

I want it so that you hit play, you load the map and your thrown straight into the game, no waiting around in lobbys with adverts playing, so on and so fourth.

Any ideas?

Thank you
 
Last edited:
Upvote 0
Also works perfectly, Thank you!

For my next question... How would you go about disabling the lobby section. You know, the one where the players wait until there are enough players to start, then everyone hits ready. Aka, this screen: [url]http://www.planettitan.co.uk/LobbyScreen.png[/URL]

I want it so that you hit play, you load the map and your thrown straight into the game, no waiting around in lobbys with adverts playing, so on and so fourth.

Any ideas?

Thank you
I know UScript can make console commands for the user... try to make it do PlayerOwner().ConsoleCommand("open mymapname.rom"); on click.
That should throw the player into a map.
 
Upvote 0