Jump to content

Insane Limits Requests


ImportBot

Recommended Posts

  • Replies 3.2k
  • Created
  • Last Reply

Originally Posted by PapaCharlie9*:

 

i want to let them use granates but untill a amount off kills in a round

Yes, that's what that limit can do. I think it even has a BF3 grenade example.

 

You might find ProconRulz easier if you are not a coder. Try that thread.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by glenn82*:

 

Yes, that's what that limit can do. I think it even has a BF3 grenade example.

 

You might find ProconRulz easier if you are not a coder. Try that thread.

is it possible you can make me one lats say

per one live the player may kill X amount with a weapon?

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

is it possible you can make me one lats say

per one live the player may kill X amount with a weapon?

Post your request in the showthread....0-RPG-USAS-etc* thread and I'll see what I can do.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LumPenPacK*:

 

With R26 the handling of RCON commands seems to have changed.

Some commands seems to be executed on the next round.

 

If you send several commands you get this:

vars.gameModeCounter 150

ExecutedOnNextRound

Could this be the reason why OnRoundOver-based limits doesn't apply all server settings on the next round because a command only gets applied when it was send BEFORE the round was finished?

 

I'm running this limit to change the ticket count based on which game mode is coming next but for some reason it will sometimes not apply the ticket counter on the next map, instead it uses the ticket counter from the last map. This is the same problem I've noticed with other plugins like UM or Adaptive Ticket count.

 

BTW: I always get the console message, but the ticket count hasn't changed on the next map.

 

OnRoundOver

 

Code:

if((server.CurrentRound +1) >= server.TotalRounds){

    if (server.NextGamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round");
    }
     
    else if(server.NextGamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round");
    }

    else if(server.NextGamemode == "RushLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "233");
    plugin.ConsoleWrite("RushLarge0 settings NEXT round");
    }
...
}

else    {

    if (server.Gamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round (send again)");
    }
         
    else if(server.Gamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round (send again)");
    }

    else if(server.Gamemode == "RushLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "233");
    plugin.ConsoleWrite("RushLarge0 settings NEXT round (send again)");
    }
...
} 


return false;
But for some reason this here is working (maybe because it sends the commands for the NEXT map on round start and this applies the settings with the new ExecutedOnNextRound handling. )

 

OnRoundStart

Code:

if(((server.CurrentRound +1) >= server.TotalRounds)){

    if (server.NextGamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round");
    }
     
    else if(server.NextGamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round");
    }

    else if(server.NextGamemode == "RushLarge0")  {
        plugin.ServerCommand("vars.gameModeCounter" , "233");
        plugin.ServerCommand("vars.vehicleSpawnDelay" , "200");
        plugin.ConsoleWrite("RushLarge0 settings NEXT round");
        }
I'm really not sure whether I'm correct but for some reason something with the execution of server commands is different since the last patch because everything I was using to change the tickets before the patch isn't working anymore
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

With R26 the handling of RCON commands seems to have changed.

Some commands seems to be executed on the next round.

 

If you send several commands you get this:

 

 

Could this be the reason why OnRoundOver-based limits doesn't apply all server settings on the next round because a command only gets applied when it was send BEFORE the round was finished?

 

I'm running this limit to change the ticket count based on which game mode is coming next but for some reason it will sometimes not apply the ticket counter on the next map, instead it uses the ticket counter from the last map. This is the same problem I've noticed with other plugins like UM or Adaptive Ticket count.

 

BTW: I always get the console message, but the ticket count hasn't changed on the next map.

 

OnRoundOver

 

Code:

if((server.CurrentRound +1) >= server.TotalRounds){

    if (server.NextGamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round");
    }
     
    else if(server.NextGamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round");
    }

    else if(server.NextGamemode == "RushLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "233");
    plugin.ConsoleWrite("RushLarge0 settings NEXT round");
    }
...
}

else    {

    if (server.Gamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round (send again)");
    }
         
    else if(server.Gamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round (send again)");
    }

    else if(server.Gamemode == "RushLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "233");
    plugin.ConsoleWrite("RushLarge0 settings NEXT round (send again)");
    }
...
} 


return false;
But for some reason this here is working (maybe because it sends the commands for the NEXT map on round start and this applies the settings with the new ExecutedOnNextRound handling. )

 

OnRoundStart

Code:

if(((server.CurrentRound +1) >= server.TotalRounds)){

    if (server.NextGamemode == "ConquestLarge0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "75");
    plugin.ConsoleWrite("ConquestLarge0 settings NEXT round");
    }
     
    else if(server.NextGamemode == "ConquestSmall0")  {
    plugin.ServerCommand("vars.gameModeCounter" , "150");
    plugin.ConsoleWrite("ConquestSmall0 settings NEXT round");
    }

    else if(server.NextGamemode == "RushLarge0")  {
        plugin.ServerCommand("vars.gameModeCounter" , "233");
        plugin.ServerCommand("vars.vehicleSpawnDelay" , "200");
        plugin.ConsoleWrite("RushLarge0 settings NEXT round");
        }
I'm really not sure whether I'm correct but for some reason something with the execution of server commands is different since the last patch because everything I was using to change the tickets before the patch isn't working anymore
I don't know, I'm as surprised as everyone else. You might be right. Changing settings between rounds might not work any more. OnRoundStart happens quite late, on the first spawn of any player into the round, so it is well within the round that those settings are being executed.

 

An experiment to try is to change your OnRoundStart limit into either an OnSpawn limit or an OnIntervalServer limit and check remaining tickets.

 

Code:

if (server.RemainTickets(1) < 20 || server.RemainTickets(2) < 20) {
   ... change settings here
}
That code might execute several times, so write it in such a way that it won't matter if it executes several times before the round ends. You can also change 20 to whatever ticket count make sense for your map/mode config.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LeChacal06*:

 

Hey all ^^

Does anyone know how to add a bf4 plugin or programing code to choose USvsUS or RUvsRU or CHvsCH as votemap?

I created 4 maps Air superiority Guilin Peaks :

/1 US vs US /2 RU vs RU /3 CH vs CH /4 CLASSIC MODE

I tried with Xvotemap but nothing happen.

Maybe because it's the same map?

I need help

Thank you for your help

 

Code:

[19:13:37 26] [xVotemap 1.5.4.2] Info: Estimated voting start 295 seconds ago, @ 19:08:42
[19:13:37 26] [xVotemap 1.5.4.2] Info: Voting system enabled_: True
[19:13:37 26] [xVotemap 1.5.4.2] Info: Current player count is: 1
[19:13:37 27] [xVotemap 1.5.4.2] Info: Current game mode is: AirSuperiority0
[19:13:37 27] [xVotemap 1.5.4.2] Info: Current round time is: 50919
[19:13:37 27] [xVotemap 1.5.4.2] Info: Current number of teams is: 2
[19:13:37 27] [xVotemap 1.5.4.2] Info: Team 1 score: 800
[19:13:37 28] [xVotemap 1.5.4.2] Info: Team 1 winningscore: 0
[19:13:37 28] [xVotemap 1.5.4.2] Info: Team 2 score: 800
[19:13:37 28] [xVotemap 1.5.4.2] Info: Team 2 winningscore: 0
[19:13:37 29] [xVotemap 1.5.4.2] Info: ServerInfo updated!
[19:13:37 41] [xVotemap 1.5.4.2] Info: There are 1 players in the db.
[19:13:37 59] [xVotemap 1.5.4.2] Info: Maplist updated. There are 4 maps currently in the maplist
[19:13:42 18] [xVotemap 1.5.4.2] Info: Running Voting Logic
[19:13:42 18] [xVotemap 1.5.4.2] Info: Voting poll: Starting...
[19:13:42 20] [xVotemap 1.5.4.2] Info: Generate map options: Starting...
[19:13:42 25] [xVotemap 1.5.4.2] Info: Guilin Peaks [AS] was removed from maplistoptions.
[19:13:42 29] [xVotemap 1.5.4.2] Info: Guilin Peaks [AS] was removed from maplistoptions.
[19:13:42 34] [xVotemap 1.5.4.2] Info: Guilin Peaks [AS] was removed from maplistoptions.
[19:13:42 38] [xVotemap 1.5.4.2] Info: Guilin Peaks [AS] was removed from maplistoptions.
[19:13:42 39] [xVotemap 1.5.4.2] Info: SortMapList: Starting...
[19:13:42 41] [xVotemap 1.5.4.2] Info: Pastmaplist count:0
[19:13:42 41] [xVotemap 1.5.4.2] Info: Currmaplist count:0
[19:13:42 42] [xVotemap 1.5.4.2] Info: SortMapList: Done!
[19:13:42 42] [xVotemap 1.5.4.2] Info: Not enough maps in the maplist to start a vote. Stopping voting system
[19:13:42 43] [xVotemap 1.5.4.2] Info: GenerateMapOptions: Done!
[19:13:42 43] [xVotemap 1.5.4.2] Info: Voting poll: Started!
[19:14:07 66] [xVotemap 1.5.4.2] Info: sent reservedSlotsList.list
[19:14:07 66] [xVotemap 1.5.4.2] Info: Skipping ServerInfo call because voting system is disabled.
[19:14:07 78] [xVotemap 1.5.4.2] Info: There are 1 players in the db.
[19:14:33 69] [xVotemap 1.5.4.2] Info: Maplist updated. There are 4 maps currently in the maplist
[19:14:38 10] [xVotemap 1.5.4.2] Info: Skipping ServerInfo call because voting system is disabled.
[19:14:38 22] [xVotemap 1.5.4.2] Info: There are 1 players in the db.
[19:15:08 49] [xVotemap 1.5.4.2] Info: sent reservedSlotsList.list
[19:15:08 49] [xVotemap 1.5.4.2] Info: Skipping ServerInfo call because voting system is disabled.
[19:15:08 61] [xVotemap 1.5.4.2] Info: There are 1 players in the db.
[19:15:38 91] [xVotemap 1.5.4.2] Info: Skipping ServerInfo call because voting system is disabled.
[19:15:39 21] [xVotemap 1.5.4.2] Info:
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Hey all ^^

Does anyone know how to add a bf4 plugin or programing code to choose USvsUS or RUvsRU or CHvsCH as votemap?

I created 4 maps Air superiority Guilin Peaks :

/1 US vs US /2 RU vs RU /3 CH vs CH /4 CLASSIC MODE

I tried with Xvotemap but nothing happen.

Maybe because it's the same map?

I need help

Thank you for your help

Did you ask in the xVotemap thread?

 

Maybe you should just do it as two separate steps. Let xVotemap pick the map, then you use a limit to change the factions when it detects which map was voted for. Or do you want both the map and the factions pairing to be voted on? That's more complicated.

 

In any case, you can start with the limit that changes factions randomly and modify it to detect the selected map:

 

showthread....andom-Factions*

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LeChacal06*:

 

Did you ask in the xVotemap thread?

 

Maybe you should just do it as two separate steps. Let xVotemap pick the map, then you use a limit to change the factions when it detects which map was voted for. Or do you want both the map and the factions pairing to be voted on? That's more complicated.

 

In any case, you can start with the limit that changes factions randomly and modify it to detect the selected map:

 

showthread....andom-Factions*

I asked on Xvotemap thread but I did not have to answer :sad:

I thought may be that this was possible with "insame" or "proconrulz".

I'll try to do something with your code... I think I'll try one map and change faction as a votemap

 

Thx for quick answer ^^

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

I moved this portion here from the Server Patches thread to keep it together with the other requests.

 

Hexa's code works great so far (testing for one day but I have not tested it with vote map yet). It just needs to be updated for 2 round maps, like 2 round Rush maps. Right now, if you use this code, it will set Rush round 1 tickets correctly, but it will incorrectly set the round 2 tickets to be whatever the next map tickets are because it does not take into account that the round 1 tickets need to be carried over to round 2. I looked at LumPenPack's code above, and I noticed he has code to deal with rounds, but I was unsuccessful in incorporating it to work with Hexa's limit.

Papa, I would appreciate your help please to modify the code shown below so it carries over the same tickets from round 1 into round 2. Shown in red below is what I added unsuccessfully to try to make it work.

 

Hexa's original code is here: LINK*

 

LumPenPack's code is here: LINK*

 

 

Also, I would like you to please add the following to the code below:

 

Setting different tickets for a few specific maps. For example, the limit covers conquest large to give me default tickets, but for Metro 2014 I want more tickets.

 

 

Code to fix and enhance:

 

Create a new limit to evaluate OnRoundOver, call it Ticket Setter, leave Action set to None.

 

Set first_check to this Code:

Code:

plugin.ServerCommand("mapList.getMapIndices");
plugin.ConsoleWrite("^2next game mode is " + server.NextGamemode + ".");
plugin.ConsoleWrite("^2player count is " + server.PlayerCount + ".");

if((server.CurrentRound +1) >= server.TotalRounds){

	if (server.NextGamemode == "ConquestLarge0") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	} if (server.NextGamemode == "RushLarge0") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	} if (server.NextGamemode == "Obliteration") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	}
}

else    {

	if (server.NextGamemode == "ConquestLarge0") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	} if (server.NextGamemode == "RushLarge0") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	} if (server.NextGamemode == "Obliteration") {
		int gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
		if (server.PlayerCount < 32) gameModeCounter = 100;
		plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
		plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
		return false;
	}
} return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

I moved this portion here from the Server Patches thread to keep it together with the other requests.

 

Papa, I would appreciate your help please to modify the code shown below so it carries over the same tickets from round 1 into round 2. Shown in red below is what I added unsuccessfully to try to make it work.

 

Hexa's original code is here: LINK*

 

LumPenPack's code is here: LINK*

 

Also, I would like you to please add the following to the code below:

 

Setting different tickets for a few specific maps. For example, the limit covers conquest large to give me default tickets, but for Metro 2014 I want more tickets.

With respect to xVotemap, this limit should work most of the time, fail sometimes. xVotemap changes the next map at unpredictable times. Basically, whenever a vote ends, which can be on round over or any time during the round, the next map is set. If the vote ends before end of round, it should be okay, but if the vote ends at the end of round, it's a race to see who goes first, xVotemap or this limit. We want the limit to go after xVotemap.

 

Fortunately, Insane Limits has a slight edge because it actually triggers on OnRoundOverTeamScores, which always comes after OnRoundOver. That doesn't eliminate the race completely, since the time between OnRoundOver and OnRoundOverTeamScores is measured in milliseconds, but most of the time xVotemap should go first, which is what you want.

 

Unfortunately, the update for the map indices is unpredictable. It would be ideal if xVotemap issued the mapList.getMapIndices command immediately after setting a new index, to let all other plugins know that the map has changed, but from what I see in the xVotemap code, it doesn't do that. Perhaps that could be a feature request for the plugin dev of xVotemap (see below for do-it-yourself tips)?

 

With all that "let the buyer beware" done with, here's the updated code, including the new features.

 

Create a new limit to evaluate OnRoundOver, call it Ticket Setter, leave Action set to None.

 

Set first_check to this Code:

 

Code:

plugin.ServerCommand("mapList.getMapIndices");
int nextRound = server.CurrentRound + 2;
if (nextRound > server.TotalRounds) nextRound = 1;

if ((server.CurrentRound +1) < server.TotalRounds) {
    plugin.ConsoleWrite("^2Next round is ^b" + plugin.FriendlyMapName(server.MapFileName) + "^n on ^b" + plugin.FriendlyModeName(server.Gamemode) + "^n, round " + (server.CurrentRound+1) + " of " + server.TotalRounds + ", with " + server.PlayerCount + " players remaining");
    return false;
}

plugin.ConsoleWrite("^2Next map is ^b" + plugin.FriendlyMapName(server.NextMapFileName) + "^n on ^b" + plugin.FriendlyModeName(server.NextGamemode) + "^n, round " + nextRound + ", with " + server.PlayerCount + " players remaining");

int gameModeCounter = 100;
int roundTimeLimit = 100;

if (server.NextGamemode == "ConquestLarge0") {
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 400; // example
    if (server.NextMapFileName == "MP_Prison") gameModeCounter = 300; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "RushLarge0") {
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 133; // example
    if (server.NextMapFileName == "MP_Naval") gameModeCounter = 133; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "Obliteration") {
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 150; // example
    if (server.NextMapFileName == "MP_Resort") gameModeCounter = 175; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());

    roundTimeLimit = 100; // I don't know what the Ranked/Normal or Ranked/Hardcore range is for this
	if (server.PlayerCount < 32) roundTimeLimit = 90; // example
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") roundTimeLimit = 100; // example
    if (server.NextMapFileName == "MP_Prison") roundTimeLimit = 100; // example
	plugin.ConsoleWrite("^2Setting vars.roundTimeLimit to " + roundTimeLimit + ".");
	plugin.ServerCommand("vars.roundTimeLimit", roundTimeLimit.ToString());
}

return false;

PS. If you want to try modifying xVotemap.cs yourself, find these lines of code:

 

Code:

private void SetMap(string mapName, string gamemode)
        {
            int index = 0;
            for (int i = 0; i < m_listCurrMapList.Count; i++)
            {
                if (m_listCurrMapList[i].MapFileName.CompareTo(mapName) == 0 && m_listCurrMapList[i].Gamemode.CompareTo(gamemode) == 0)
                {
                    index = i;
                    WritePluginConsole("Map found in current maplist: " + index, "Info", 5);
                    break;
                }
            }
            this.ExecuteCommand("procon.protected.send", "mapList.setNextMapIndex", index.ToString());

            WritePluginConsole("Next map index set to: " + index, "Work", 5);
        }
And add the line in red below:

 

Code:

private void SetMap(string mapName, string gamemode)
        {
            int index = 0;
            for (int i = 0; i < m_listCurrMapList.Count; i++)
            {
                if (m_listCurrMapList[i].MapFileName.CompareTo(mapName) == 0 && m_listCurrMapList[i].Gamemode.CompareTo(gamemode) == 0)
                {
                    index = i;
                    WritePluginConsole("Map found in current maplist: " + index, "Info", 5);
                    break;
                }
            }
            this.ExecuteCommand("procon.protected.send", "mapList.setNextMapIndex", index.ToString());

            this.ExecuteCommand("procon.protected.send", "mapList.getMapIndices");

            WritePluginConsole("Next map index set to: " + index, "Work", 5);
        }
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Fortunately, Insane Limits has a slight edge because it actually triggers on OnRoundOverTeamScores, which always comes after OnRoundOver.

CORRECTION: On a normal round ending, that's the order, but on a premature round ending, like a round restart or next map advance, OnroundOverTeamScores doesn't happen at all, which means this limit won't execute. So any kind of map change command that terminates the round prematurely will bug this limit.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

CORRECTION: On a normal round ending, that's the order, but on a premature round ending, like a round restart or next map advance, OnroundOverTeamScores doesn't happen at all, which means this limit won't execute. So any kind of map change command that terminates the round prematurely will bug this limit.

Thank you very much for the ticket setter limit modification Papa.

 

Would any of the situations shown below be considered a premature round ending that would cause this limit to not work?

 

1) Using ProCon to end the round by select winning team to end round via Players tab

2) Having the mercy limit end the round at X tickets difference

3) Having the players end the round with surrender

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Thank you very much for the ticket setter limit modification Papa.

 

Would any of the situations shown below be considered a premature round ending that would cause this limit to not work?

 

1) Using ProCon to end the round by select winning team to end round via Players tab

2) Having the mercy limit end the round at X tickets difference

3) Having the players end the round with surrender

All of those use mapList.endRound, which ends the round normally, so they should be fine. It's mapList.runNextRound that ends prematurely with no end-round sequence.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

all i have done is making sure the votemap does not end at the end of the round. (early voting).

 

am gonna check the IL you made, it might have some cool tricks :smile:

That helps with the round over race, but that doesn't help with the uncertainty about who sends the get map indices update command.

 

Fortunately, it looks like IL notices if some other plugin changes the map indices, like xVotemap, and asks for the new indices. So the modification for xVotemap might not be necessary for IL. But it's still a good change to make, for the sake of other plugins.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LumPenPacK*:

 

With respect to xVotemap, this limit should work most of the time, fail sometimes. xVotemap changes the next map at unpredictable times. Basically, whenever a vote ends, which can be on round over or any time during the round, the next map is set. If the vote ends before end of round, it should be okay, but if the vote ends at the end of round, it's a race to see who goes first, xVotemap or this limit. We want the limit to go after xVotemap.

...

Thank your for this code, but the problem with a wrong ticket counter still persists. I have really no idea why this happens. About 50% of the time it works, 50% of the time not, even without a map vote.

 

It's so annoying if the ticket counter should be 75 on CQ large but it is set to 233 from Rush....

 

Would it be helpful to add this code as first check?

 

Code:

Thread.Sleep(2000);   // wait for votemap to set the new map
plugin.ServerCommand("mapList.getMapIndices");
plugin.ServerCommand("mapList.getRounds");
plugin.ServerCommand("serverInfo");
return true;
Another problem that is new: I have some game mode specific limits (no snipers on rush) and with the last server update(s), IL sometimes also punishes players on CQ because IL sometimes thinks it's running rush but it isn't.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Thank your for this code, but the problem with a wrong ticket counter still persists. I have really no idea why this happens. About 50% of the time it works, 50% of the time not, even without a map vote.

 

It's so annoying if the ticket counter should be 75 on CQ large but it is set to 233 from Rush....

 

Would it be helpful to add this code as first check?

 

Code:

Thread.Sleep(2000);   // wait for votemap to set the new map
plugin.ServerCommand("mapList.getMapIndices");
plugin.ServerCommand("mapList.getRounds");
plugin.ServerCommand("serverInfo");
return true;
No. Making the main thread sleep is very bad practice. You end up making Procon hang for 2 seconds.

 

It's not even clear that getting the indices is the problem. It could be on the other end, setting the mode counter may not be "taking" when we want it to.

 

I think the best course of action is:

 

1) If you really think xVotemap is the culprit, make the 1-line modification to xVotemap I suggested.

 

2) Create a limit that evaluates OnIntervalServer set to 10 seconds, which is activated only between OnRoundOver and OnRoundStart.

 

You'd need to change the existing OnRoundOver to set the activation flag:

 

Code:

int gameModeCounterValueYouWantForNextRound = ... set this to whatever you want the value to be;
String key = "Force Mode Counter";
plugin.Data.setInt(key, gameModeCounterValueYouWantForNextRound.ToString());
You need to add an OnRoundStart limit (could be the same as the one below) to unset the activation flag:

 

Code:

String key = "Force Mode Counter";
plugin.Data.unsetInt(key);
And then a new OnServerInterval limit set to 10 seconds with this first_check Code:

 

Code:

String key = "Force Mode Counter";
if (!plugin.Data.issetInt(key)) return false;
// Repeatly set the game mode counter for the next round every 10 seconds, between rounds
plugin.ServerCommand("vars.gameModeCounter", plugin.Data.getInt(key).ToString());
return false;
3) If that doesn't work, instead of using Insane Limits, write a new plugin that handles the round over and level loaded events directly, as well as all the mapList altering events, and insures that the correct mode counter is set by checking it after it is set by you.

 

Another problem that is new: I have some game mode specific limits (no snipers on rush) and with the last server update(s), IL sometimes also punishes players on CQ because IL sometimes thinks it's running rush but it isn't.

Probably a related problem. Because of some change in BF4, it takes longer for IL to catch up to what the mapList actually is and what the current round is.

 

It might help to add a limit that evaluates OnRoundStart (which is actually first spawn in new round), and have it do this in first_check:

 

Code:

plugin.ServerCommand("mapList.list", "0");
plugin.ServerCommand("mapList.getMapIndices");
plugin.ServerCommand("serverInfo");
return false;
That should help IL catch up faster, but there's still a small window where it could be confused.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by IAF-SDS*:

 

LumPenPack,

 

Papa's Ticket Setter code is working for me without issue since I installed it. It consistently sets the tickets correctly on every map. I'll explain what I did below to see if it helps you find why it's not working for you.

 

First thing I did was to set all variables in the startup.txt to their default values for hardcore (or normal if you use that). Next, I moved vars.preset HARDCORE false to the end of the startup.txt and I completely removed vars.preset HARDCORE from being sent again by any other plugin or limit. In particular, I no longer send the vars.preset HARDCORE from UMM because whenever I did that, I would get incorrect tickets. Another thing I noticed, when I sent any ExecuteOnNextRound variable with UMM, the tickets would get screwed up. Right now, Im aware of two such variables: vars.preset NORMAL or HARDCORE and the vars.vehicleSpawnDelay.

 

Second thing I did was to make the modification to Votemap per Papa's instructions shown above.

 

Last thing I did was to comment out (disable) the code that Papa added to set the round time because I needed different round times to be set for the different game mode/map name combinations (not just by map name), and I am able to use UMM for that because the round time variable is not an ExecuteOnNextRound variable (if it was, I would need to use Papa's limit to set it correctly).

 

That's it.

 

 

 

 

Papa,

 

What needs tweaking in your code is the plugin console messages about what round number is going to play next. Unless Im misinterpreting the message, it looks to me that it is showing what the next map and game mode will be, with what round it will play next (e.g. round 1 of 2, or 1 of 1, or 2 of 2).

 

Here are some examples of incorrect messages shown in the plugin console (BUT despite these incorrect messages the tickets set correctly every time):

 

Code:

[21:52:13 17] [Insane Limits] Next map is Gulf of Oman 2014 on Domination, round 1 of 2, with 63 players remaining
[21:52:13 17] [Insane Limits] Setting vars.gameModeCounter to 200.

Gulf DOM only has 1 round.  All maps have 1 round, except Rush where it has 2 rounds.  It incorrectly shows Gulf will play round 1 of 2 next (should show 1 of 1).


[23:26:43 92] [Insane Limits] Next map is Operation Firestorm 2014 on Conquest Large, round 1 of 2, with 61 players remaining
[23:26:43 94] [Insane Limits] Setting vars.gameModeCounter to 100.

Again, Firestorm Conquest only has 1 round, but this incorrectly shows round 1 of 2 is next.  It should show round 1 of 1 is next.


[00:08:13 07] [Insane Limits] Next map is Operation Firestorm 2014 on Rush, round 1 of 1, with 64 players remaining
[00:08:13 08] [Insane Limits] Setting vars.gameModeCounter to 300.

Firestorm Rush has 2 rounds, but this incorrectly shows round 1 of 1 is next.  It should show round 1 of 2 is next.
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LumPenPacK*:

 

....

Thank you very much for your help. I've now added all those things to IL, we'll see whether spamming the commands during map change helps or not.

 

....

Also to you: Thank you for your help.

Another thing I noticed, when I sent any ExecuteOnNextRound variable with UMM, the tickets would get screwed up. R

That's an interesting finding. It could really be the reason why I have those problems and others not.

I don't use UMM anymore but according to which map and game mode is coming next, I use different values for "vars.vehicleSpawnDelay" and "vars.vehicleSpawnAllowed". Maybe my problem is caused by any command that is "ExecuteOnNextRound" which could block all other commands such as "vars.gameModeCounter". Could be a server bug.

 

BTW: Here's my slightly modified version of PC9 code:

 

 

OnRoundEnd

Code

 

Code:

plugin.ServerCommand("mapList.getMapIndices");
plugin.ServerCommand("mapList.getRounds");
plugin.ServerCommand("serverInfo");

int nextRound = server.CurrentRound + 2;
if (nextRound > server.TotalRounds) nextRound = 1;

if ((server.CurrentRound +1) < server.TotalRounds) {
    plugin.ConsoleWrite("^2Next round is ^b" + plugin.FriendlyMapName(server.MapFileName) + "^n on ^b" + plugin.FriendlyModeName(server.Gamemode) + "^n, round " + (server.CurrentRound+1) + " of " + server.TotalRounds + ", with " + server.PlayerCount + " players remaining");
    return false;
}

plugin.ConsoleWrite("^2Next map is ^b" + plugin.FriendlyMapName(server.NextMapFileName) + "^n on ^b" + plugin.FriendlyModeName(server.NextGamemode) + "^n, round " + nextRound + ", with " + server.PlayerCount + " players remaining");

int gameModeCounter = 100;
int roundTimeLimit = 100;
plugin.Data.setBool("vehicleSpawnAllowed", true);
plugin.Data.setInt("vehicleSpawnDelay", 100);


if (server.NextGamemode == "ConquestLarge0") {                                                                  // CQ LARGE
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 75;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 75; // example
    if (server.NextMapFileName == "MP_Prison") gameModeCounter = 75; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "ConquestSmall0") {                                                           // CQ SMALL
	gameModeCounter = 150; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 150;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 150; // example
    if (server.NextMapFileName == "MP_Naval") gameModeCounter = 150; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "RushLarge0") {                                                               // RUSH LARGE
	gameModeCounter = 233; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 175;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 200; // example
    if (server.NextMapFileName == "MP_Naval") gameModeCounter = 200; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "Obliteration") {                                                             // OBLITERATION
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 100; // example
    if (server.NextMapFileName == "MP_Resort") gameModeCounter = 100; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
    roundTimeLimit = 65; // I don't know what the Ranked/Normal or Ranked/Hardcore range is for this
	if (server.PlayerCount < 32) roundTimeLimit = 65; // example
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") roundTimeLimit = 65; // example
    if (server.NextMapFileName == "MP_Prison") roundTimeLimit = 65; // example
	plugin.ConsoleWrite("^2Setting vars.roundTimeLimit to " + roundTimeLimit + ".");
	plugin.ServerCommand("vars.roundTimeLimit", roundTimeLimit.ToString());
} else if (server.NextGamemode == "Domination0") {                                                             // DOMINATION
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 100; // example
    if (server.NextMapFileName == "MP_Resort") gameModeCounter = 100; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
} else if (server.NextGamemode == "CaptureTheFlag0") {                                                          // CTF
	gameModeCounter = 100; // Change this to anything between 75 and 400 inclusive
	if (server.PlayerCount < 32) gameModeCounter = 100;
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") gameModeCounter = 100; // example
    if (server.NextMapFileName == "MP_Resort") gameModeCounter = 100; // example
	plugin.ConsoleWrite("^2Setting vars.gameModeCounter to " + gameModeCounter + ".");
	plugin.ServerCommand("vars.gameModeCounter", gameModeCounter.ToString());
    roundTimeLimit = 100; // I don't know what the Ranked/Normal or Ranked/Hardcore range is for this
	if (server.PlayerCount < 32) roundTimeLimit = 100; // example
    // Specific map overrides
    if (server.NextMapFileName == "XP0_Metro") roundTimeLimit = 100; // example
    if (server.NextMapFileName == "MP_Prison") roundTimeLimit = 100; // example
	plugin.ConsoleWrite("^2Setting vars.roundTimeLimit to " + roundTimeLimit + ".");
	plugin.ServerCommand("vars.roundTimeLimit", roundTimeLimit.ToString());
}


if (plugin.isInList(server.NextMapFileName +"#"+ server.NextGamemode, "VehicleSpawn_0")) {
    plugin.ConsoleWrite("^2Setting vars.vehicleSpawnAllowed to 'false'.");
	plugin.ServerCommand("vars.vehicleSpawnAllowed", "false");
    plugin.Data.setBool("vehicleSpawnAllowed", false);
}
if (plugin.isInList(server.NextMapFileName +"#"+ server.NextGamemode, "VehicleSpawn_200")) {
    plugin.ConsoleWrite("^2Setting vars.vehicleSpawnDelay to '200'.");
    plugin.ServerCommand("vars.vehicleSpawnDelay" , "200");
    plugin.Data.setInt("vehicleSpawnDelay", 200);
}

plugin.Data.setInt("gameModeCounter", gameModeCounter);
plugin.Data.setInt("roundTimeLimit", roundTimeLimit);
plugin.Data.setBool("roundEnded", true);

return false;
OnRoundStart

Code

 

Code:

plugin.ServerCommand("vars.vehicleSpawnAllowed", "true");
plugin.ServerCommand("vars.serverName" , "# Privatkaeserei Alois Schuhmann MIXED ALL MAPS MAPVOTE");
plugin.ServerCommand("mapList.list", "0");
plugin.ServerCommand("mapList.getMapIndices");
plugin.ServerCommand("serverInfo");
plugin.Data.unsetBool("roundEnded");
plugin.ConsoleWrite("Default Settings");
return false;
OnIntervalServer

Expression

Code:

plugin.Data.issetBool("roundEnded")
Code

Code:

plugin.ServerCommand("vars.gameModeCounter", plugin.Data.getInt("gameModeCounter").ToString());
plugin.ServerCommand("vars.roundTimeLimit", plugin.Data.getInt("roundTimeLimit").ToString());
plugin.ServerCommand("vars.vehicleSpawnDelay", plugin.Data.getInt("vehicleSpawnDelay").ToString());
plugin.ServerCommand("vars.vehicleSpawnAllowed", plugin.Data.getBool("vehicleSpawnAllowed").ToString());
plugin.ConsoleWrite("^2Command SPAM!");
return false;
* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Senshin*:

 

I am trying to find a voterestart (next map/new map) script for my bf4 servers, so players can vote for a restart of the round.

 

I thought this was more used but after hours of searching, trying I cannot find a other way to ask you guys.

I hope someone can help me with this, I would be gratefull!

 

I hope this is possible and could someone help me with it?

I hope I ain't asking to rude, i just dont know any other way now.

Thank you

 

Cheers,

Senshin

 

I also post this in proconrulz topic because i am not certain what program fit's better for it.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by HexaCanon*:

 

ok, the end of round ticket setter is really not working for me now for some reason.

 

weird thing is on round end i do not see any gamemodecounter command on the console even though i am 100% sure there is nothing wrong on IL side it just does not appear in the console.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by LumPenPacK*:

 

It's completely unclear and just random whether the ticket counter is applied from the server or not. I've tried everything (expect to write a short plugin that changes the tickets between the rounds) but I guess this is just a server bug, because even when I use the console to send vars.gameModeCounter by hand during map change, it doesn't apply the new counter sometimes.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Papa,

 

What needs tweaking in your code is the plugin console messages about what round number is going to play next. Unless Im misinterpreting the message, it looks to me that it is showing what the next map and game mode will be, with what round it will play next (e.g. round 1 of 2, or 1 of 1, or 2 of 2).

Good catch. I corrected the post above:

 

myrcon.net/...insane-limits-requests#entry27046

 

EDIT: since LumPenPack's modified code carried the same error, I corrected it there also.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

I am trying to find a voterestart (next map/new map) script for my bf4 servers, so players can vote for a restart of the round.

 

I thought this was more used but after hours of searching, trying I cannot find a other way to ask you guys.

I hope someone can help me with this, I would be gratefull!

 

I hope this is possible and could someone help me with it?

I hope I ain't asking to rude, i just dont know any other way now.

Thank you

 

Cheers,

Senshin

 

I also post this in proconrulz topic because i am not certain what program fit's better for it.

As long as you ask in the right place, it is not rude, and this is the right place.

 

This limit lets players vote (!surrender) to end the current round and proceed to the next. Is that good enough? If not, it is easy to modify to restart the current round instead of skipping to the next. If you want that modification, post a request in THAT thread:

 

myrcon.net/.../insane-limits-v09r6-vote-to-nuke-campingbase-raping-team-or-surrender

 

This limit automatically (no voting) ends the round if the teams are too far apart. This is good for high ticket rounds (1000+) that will run more than 30 minutes even if teams are 300 or more tickets apart the whole time.

 

showthread....hind-(CQ-only)*

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by Senshin*:

 

Thank you!!

 

The first link you gave is almost perfect, I think it will be fine now.

Now trying to setup it, is there no way i can only need like 4 votes instead of the percentage?

 

Thanks again :smile:.

* Restored post. It could be that the author is no longer active.
Link to comment

Originally Posted by PapaCharlie9*:

 

Thank you!!

 

The first link you gave is almost perfect, I think it will be fine now.

Now trying to setup it, is there no way i can only need like 4 votes instead of the percentage?

 

Thanks again :smile:.

I replied in that thread:

myrcon.net/...insane-limits-v09r6-vote-to-nuke-campingbase-raping-team-or-surrender#entry28946

* Restored post. It could be that the author is no longer active.
Link to comment

Archived

This topic is now archived and is closed to further replies.




  • Our picks

    • Game Server Hosting:

      We're happy to announce that EZRCON will branch out into the game server provider scene. This is a big step for us so please having patience if something doesn't go right in this area. Now, what makes us different compared to other providers? Well, we're going with the idea of having a scaleable server hosting and providing more control in how you set up your server. For example, in Minecraft, you have the ability to control how many CPU cores you wish your server to have access to, how much RAM you want to use, how much disk space you want to use. This type of control can't be offered in a single service package so you're able to configure a custom package the way you want it.

      You can see all the available games here. Currently, we have the following games available.

      Valheim (From $1.50 USD)


      Rust (From $3.20 USD)


      Minecraft (Basic) (From $4.00 USD)


      Call of Duty 4X (From $7.00 USD)


      OpenTTD (From $4.00 USD)


      Squad (From $9.00 USD)


      Insurgency: Sandstorm (From $6.40 USD)


      Changes to US-East:

      Starting in January 2022, we will be moving to a different provider that has better support, better infrastructure, and better connectivity. We've noticed that the connection/routes to this location are not ideal and it's been hard getting support to correct this. Our contract for our two servers ends in March/April respectively. If you currently have servers in this location you will be migrated over to the new provider. We'll have more details when the time comes closer to January. The new location for this change will be based out of Atlanta, GA. If you have any questions/concerns please open a ticket and we'll do our best to answer them.
      • 5 replies
    • Hello All,

      I wanted to give an update to how EZRCON is doing. As of today we have 56 active customers using the services offered. I'm glad its doing so well and it hasn't been 1 year yet. To those that have services with EZRCON, I hope the service is doing well and if not please let us know so that we can improve it where possible. We've done quite a few changes behind the scenes to improve the performance hopefully. 

      We'll be launching a new location for hosting procon layers in either Los Angeles, USA or Chicago, IL. Still being decided on where the placement should be but these two locations are not set in stone yet. We would like to get feedback on where we should have a new location for hosting the Procon Layers, which you can do by replying to this topic. A poll will be created where people can vote on which location they would like to see.

      We're also looking for some suggestions on what else you would like to see for hosting provider options. So please let us know your thoughts on this matter.
      • 4 replies
    • Added ability to disable the new API check for player country info


      Updated GeoIP database file


      Removed usage sending stats


      Added EZRCON ad banner



      If you are upgrading then you may need to add these two lines to your existing installation in the file procon.cfg. To enable these options just change False to True.

      procon.private.options.UseGeoIpFileOnly False
      procon.private.options.BlockRssFeedNews False



       
      • 2 replies
    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 11 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 9 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.