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

Final Release [Mutator] SmartLoader (white-listed)

Ducky

Super Moderator
May 22, 2011
6,358
237
Netherlands
SmartLoader (white-listed)

Revision 18 - Released January 5, 2014

Introduction

This is a small mutator that will help preventing servers to go empty if a server admin needs to disable a mutator in the middle of a campaign.

The idea
If there are issues with a server and the server admin suspect that it's caused by one of the active mutators, then natiarally he want to turn it off. No problem so far except when his server is well populated. Turning off a mutator will mean restarting the map, though such an action might lead to an empty server. On a none campaign server it would be possible to restart the map without mutator during map change, but this option would be tricky for a campaign server (due to the map voting). This mutator is made to make switching off a mutator easier (or on).

What does SmartLoader do
SmartLoader actually doesn't do much. The only thing it does is looking at server session start which other mutator should be started and which shouldn't. For this it uses a by the mutator maintained mutator enabled/disabled list. The list is available on the web-admin and the server admin can disable (or enable) mutators to his liking. Then the next time a map loads, SmartLoader will load and start those mutators which were previously enabled by the server admin. This eliminates the need of a server/map restart to disable a problematic mutator.
Also will adding mutators to a server become easier. The server admin only needs to add ?Mutator=SmartLoader.SmartLoader to his command-line. All the other mutators only need to be present on the server (including their correctly filled in ini files) and SmartLoader will pick them up and make them selectable from out of SmartLoader's web-ui page. No more need to add other mutators to the command line.

Delayed starting of mutators
Some mutators can cause problems when directly started. For those a delayed start option is available. It's possible to configure per mutator if it should start with a delay or not. See below screen-shot for that.

SmartLoader.png

Example of the mutator settings screen
ServerEx is enabled and will start directly. And dibbler67's Immersion Overhaul Mutator starting after a small delay.

Download

The mutator can be downloaded from this location:
SmartLoader-Rev18.zip

Installation instructions
  • Download the mutator from above location
  • Extract all files from the archive
  • Place the next files in your ROGame\Config folder on your server:
    • config\DefaulSmartLoader.ini
    • config\ROSmartLoader.ini
  • Place the next files in your ROGame\BrewedPCServer folder on your server:
    • BrewedPCServer\SmartLoader.u
    Note:
    If you have a redirect, then it's advised to also place the SmartLoader.u file on your redirect too. It will prevent ping spikes when players connect and the server needs to upload those files to the clients. Unlike with map files, the .u files should NOT be renamed to .upk
  • Restart your server (you need to do this or else the server will not find the mutator)

Activation

From server launch file (adviced)
  • Stop your server.
  • Open your servers launch batch file with a text editor.
  • Add ?Mutator=SmartLoader.SmartLoader to the map URL of the server start command-line.
  • If there are other mutators specified in the command-line, then remove them. You can select them again in the SmartLoader web-settings page.
  • Save the modified server launch batch file and close the text editor.
  • Start the server.
From web-admin Change Map page
  • Open your servers web-admin tool.
  • Go to the Change Map page.
  • Select your game type and map.
  • Tick the SmartLoader checkbox and un-tick all others. You can select them again in the SmartLoader web-settings page.
  • Change the map.

Compatibility note:
SmartLoader does not replace any vanilla RO2 class instance.

Source code:
The source code of this mutator can be downloaded from:
svn://62.163.53.115/SmartLoader/trunk/
An SVN client is required to download the sources (for example TortoiseSVN).
The files are password protected. If you want access to the sources, then please PM me and you will receive a reply with sign-in details.

Many thanks to:
For arranging tests on his servers.
 
Last edited:
Blast, I just saw this. Do you suppose it might fix my loading-from-command-line issue? I still haven't cracked that one.

Did test it, but regretfully the server will still crash with this loop:
Code:
Log: MD5s: No result found - Skipping white list checks

I will see if it can be solved by adding a configurable mutator start delay.
 
Upvote 0
--SNIP--
I will see if it can be solved by adding a configurable mutator start delay.

And it works. You can find the server start (from command-line) logging in the spoiler:
Spoiler!


I will add it to the SmartLoader mutator and post the newer version. A delay of 0.1 second was already sufficient so I will not make it optional, but rather standard.
 
Upvote 0
It's not caused by SmartLoader but by UE3. Selecting the mutator settings of a none active mutator will cause the mutator settings object to be loaded at server side. As a result the same object load request is send to the clients. They probably do not have the object and thus get disconnected. Welcome to UE3.

So lesson of the day - Dont even go near mutators that are not loaded.
 
Upvote 0
So lesson of the day - Dont even go near mutators that are not loaded.

Yup. It would be nice if the web-admin would give a warning if you click one which isn't loaded. Something like:

The mutator you selected is currently not loaded. Displaying the mutator's web page might cause players to be kicked from the server. Are you sure you want to load the settings page of this mutator?

[Yes] [No]
 
Upvote 0