Blog Archives

Server Mod CountryFilter

CountryFilter is a server mod which lets you choose which countries can connect to your server. You can block connections from certain countries and allow all others or allow connections from certain countries and block all others. It does not have to be downloaded by players, it should exist only on the server.

DOWNLOAD:

Rune 1.00-1.04
CountryFilter100.zip

Rune 1.07-1.08
CountryFilter107.zip

Code
CountryFilterSrc.zip

The settings can be changed in CountryFilter.ini, to block or allow a certain country just add the country’s two letter code to the correct line. Countries are separated by commas.

The country codes can be found here:

http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

Example 1:

[CountryFilter.CountryFilter]
BlockedCountries=it,no,fr
AllowedCountries=

Block connections from Italy,Norway and France and allow everything else.

Example 2:

[CountryFilter.CountryFilter]
BlockedCountries=
AllowedCountries=pl

Only allow connections from Poland, block everything else.

You need to have Nephthys server security mod installed for CountryFilter mod to work. It can be downloaded from here for versions 1.01 and 1.07:

http://zzora.altervista.org/Nephthys.html

If you need Nephthys for versions 1.00 or 1.04 leave a comment here and maybe I can help you.

Remote Web Server Mod

Here is a simple example of how you can send information from a Rune mod to a remote web server.

All you really need is web host that supports php. There are many free web hosts that do this. Try using google.

In this example I am sending the current map and the number of players who are currently playing on the server, then the php script at the remote web server save these variables to a text file, which can be viewed in a normal web browser.

The mod is running as a ServerActor and does not need to be downloaded by players.

DOWNLOAD:
WebServerMod.zip | WebServerModSrc.zip

CODE:

The ServerActor:

// WebServerMod.uc
Class WebServerMod extends Info;

var UBrowserHTTPClient WebCon;
var string WebHost, WebFile;
var int WebPort, WebTimeOut;
var string WebVars;

event PostBeginPlay()
{
	local string MapName;
	local int Players;

	MapName = left(level, instr(level, "."));
	Players = Level.Game.NumPlayers;

	// Would look something like this in a browser:
	// www.website.com/folder/WebServerScript.php?map=DM-Coliseum&players=16
	WebVars = "?map="$MapName$"&players="$Players;

	WebCon = Spawn(Class'UBrowserHTTPClient');
	WebCon.Browse(WebHost, WebFile$WebVars, WebPort, WebTimeOut);

	log("Browse:"$WebHost$WebFile$WebVars$":"$WebPort);
}

DefaultProperties
{
	WebHost="www.website.com"
	WebFile="/folder/WebServerScript.php"
	WebPort=80
	WebTimeOut=5
}

The php script:

// WebServerScript.php
<?php

$MapName = $_REQUEST['map'];
$NumberOfPlayers = $_REQUEST['players'];

$LogFileName = "WebServerMod.log";
$LogFile = fopen($LogFileName, 'w') or die("can't open file");

$NewLine = "\n";

fwrite($LogFile, "Map: ");
fwrite($LogFile, $MapName);

fwrite($LogFile, $NewLine);

fwrite($LogFile, "Players: ");
fwrite($LogFile, $NumberOfPlayers);

fclose($LogFile);
?>

You could use this kind of thing for many many many other things too:

– update server stats
– update players stats
– create player chat system
– player rating of maps on download sites
– …much more, use your imagination

Note: I just realized that this mod sends the amount of players at the beginning of the map, and there might not be any players on the server so early. But it doesn’t matter, it’s just an example, you should still see the map name at least in the text file if you try it.

Classic Server Query (1.0X Server Fix)

For some reason you can’t join Rune 1.00, 1.02 or 1.04 servers with Rune Classic even if you can join 1.01. That is a little weird because all those versions are network compatible.

Anyway, if you want Rune Classic players to be able to join your 1.00, 1.02 or 1.04 server you can install this fix.

DOWNLOAD:
ClassicServerQuery.zip

Put the file “ClassicServerQuery.u” in your Rune system folder.
Open Rune.ini and change:

ServerActors=IpServer.UdpServerQuery
to:
ServerActors=ClassicServerQuery.ClassicServerQuery