<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bf2tech.uturista.pt/index.php?action=history&amp;feed=atom&amp;title=Scripts%3AClanmemberBalance</id>
	<title>Scripts:ClanmemberBalance - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bf2tech.uturista.pt/index.php?action=history&amp;feed=atom&amp;title=Scripts%3AClanmemberBalance"/>
	<link rel="alternate" type="text/html" href="https://bf2tech.uturista.pt/index.php?title=Scripts:ClanmemberBalance&amp;action=history"/>
	<updated>2026-08-06T01:10:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://bf2tech.uturista.pt/index.php?title=Scripts:ClanmemberBalance&amp;diff=133&amp;oldid=prev</id>
		<title>Pireax: Created page with &quot;__TOC__ == Short Description  ==  &#039;&#039;&#039;Autobalance unleashed by Nexus2k:&#039;&#039;&#039;  This Modification prevent Clanmembers/Commanders/Squadleaders and Squad Members from Autobalance and...&quot;</title>
		<link rel="alternate" type="text/html" href="https://bf2tech.uturista.pt/index.php?title=Scripts:ClanmemberBalance&amp;diff=133&amp;oldid=prev"/>
		<updated>2018-06-22T15:38:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__TOC__ == Short Description  ==  &amp;#039;&amp;#039;&amp;#039;Autobalance unleashed by Nexus2k:&amp;#039;&amp;#039;&amp;#039;  This Modification prevent Clanmembers/Commanders/Squadleaders and Squad Members from Autobalance and...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
== Short Description  ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Autobalance unleashed by Nexus2k:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This Modification prevent Clanmembers/Commanders/Squadleaders and Squad Members from Autobalance and additionally switchs Clanmembers to one Team on connect&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Protect Clanmembers/Commander/Squadleader from Autobalance:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open bf2/admin/standard_admin/autobalance.py with a texteditor Add at Line 7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Change this to your Clantag&lt;br /&gt;
clantag=&amp;quot;Net.BS|&amp;quot; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add at Line 46, after:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if not bf2.serverSettings.getAutoBalanceTeam(): return &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        # Prevent Clanmembers from Autobalancing&lt;br /&gt;
        name=p.getName()&lt;br /&gt;
        if name.find(clantag)&amp;gt;-1: return None&lt;br /&gt;
       &lt;br /&gt;
        # Squadleader/Commander prevent from Change&lt;br /&gt;
        if p.isCommander(): return None&lt;br /&gt;
        if p.isSquadLeader(): return None&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--Nexus2k 05:46, 18 Jul 2005 (MDT)&lt;br /&gt;
&lt;br /&gt;
==  Additions  ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;For more than one Clan Tag:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Modifiy the clantag variable: from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Change this to your Clantag&lt;br /&gt;
clantag=&amp;quot;Net.BS|&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Insert here your Clantags&lt;br /&gt;
clantags=[&amp;quot;Net.BS|&amp;quot;,&amp;quot;|CSAR|&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and from:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Prevent Clanmembers from Autobalancing&lt;br /&gt;
name=p.getName()&lt;br /&gt;
if name.find(clantag)&amp;gt;-1: return None&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Prevent Clanmembers from Autobalancing&lt;br /&gt;
name=p.getName()&lt;br /&gt;
for clantag in clantags:&lt;br /&gt;
 if name.find(clantag)&amp;gt;-1: return None&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Squadmemberautobalanceprotection:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(From ~RIP~Brian on [http://bf1942.lightcubed.com/forum/viewtopic.php?p=14370#14370 http://bf1942.lightcubed.com/forum/viewtopic.php?p=14370#14370]) add after this section :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Prevent Clanmembers from Autobalancing&lt;br /&gt;
        name=p.getName()&lt;br /&gt;
&lt;br /&gt;
        if name.find(clantag)&amp;gt;-1: return None&lt;br /&gt;
        # Squadleader/Commander prevent from Change&lt;br /&gt;
        if p.isCommander(): return None if p.isSquadLeader(): return None&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the following code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Prevent squad members from change&lt;br /&gt;
if p.getSquadId()&amp;gt;0: return None&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  More Additions  ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Auto TeamSet on Connect:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open autobalance.py add after:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if team2 &amp;gt; team1:&lt;br /&gt;
                p.setTeam(1)&lt;br /&gt;
        else:&lt;br /&gt;
                p.setTeam(2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this code part for only One Clan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#change Team to 1 on Connect if Clanmember&lt;br /&gt;
name=p.getName()&lt;br /&gt;
if name.find(clantag)&amp;gt;-1: p.setTeam(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or this code part for multiple Clans:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#change Team to 1 on Connect if Clanmember&lt;br /&gt;
name=p.getName()&lt;br /&gt;
for clantag in clantags:&lt;br /&gt;
 if name.find(clantag)&amp;gt;-1: p.setTeam(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example  ==&lt;br /&gt;
&lt;br /&gt;
The whole autobalance.py can look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
The whole autobalance.py can look like this:&lt;br /&gt;
&lt;br /&gt;
# team autobalance system&lt;br /&gt;
&lt;br /&gt;
import bf2&lt;br /&gt;
import host&lt;br /&gt;
from bf2 import g_debug&lt;br /&gt;
&lt;br /&gt;
#Insert here your Clantags&lt;br /&gt;
clantags=[&amp;quot;Net.BS|&amp;quot;,&amp;quot;|CSAR|&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
def init():&lt;br /&gt;
        if g_debug: print &amp;#039;initializing autobalance script&amp;#039;&lt;br /&gt;
&lt;br /&gt;
        host.registerHandler(&amp;#039;PlayerConnect&amp;#039;, onPlayerConnect)&lt;br /&gt;
        host.registerHandler(&amp;#039;PlayerDeath&amp;#039;, onPlayerDeath)&lt;br /&gt;
        host.registerHandler(&amp;#039;PlayerChangeTeams&amp;#039;, onPlayerChangeTeams)&lt;br /&gt;
&lt;br /&gt;
def onPlayerConnect(p):&lt;br /&gt;
&lt;br /&gt;
        # dont teamswitch alive players, or they will have the wrong teams kit&lt;br /&gt;
        if p.isAlive(): return&lt;br /&gt;
&lt;br /&gt;
        # place player on the team with least players&lt;br /&gt;
        team1 = 0&lt;br /&gt;
        team2 = 0&lt;br /&gt;
        for tp in bf2.playerManager.getPlayers():&lt;br /&gt;
                if tp != p:&lt;br /&gt;
                        if tp.getTeam() == 1: team1 += 1&lt;br /&gt;
                        else: team2 += 1&lt;br /&gt;
&lt;br /&gt;
        team2 = team2 * bf2.serverSettings.getTeamRatioPercent() / 100.0       &lt;br /&gt;
        if team2 &amp;gt; team1:&lt;br /&gt;
                p.setTeam(1)&lt;br /&gt;
        else:&lt;br /&gt;
                p.setTeam(2)&lt;br /&gt;
        #change Team to 1 on Connect if Clanmember&lt;br /&gt;
        name=p.getName()&lt;br /&gt;
        for clantag in clantags:&lt;br /&gt;
         if name.find(clantag)&amp;gt;-1: p.setTeam(1)&lt;br /&gt;
&lt;br /&gt;
def onPlayerDeath(p, vehicle):&lt;br /&gt;
&lt;br /&gt;
        if not bf2.serverSettings.getAutoBalanceTeam(): return&lt;br /&gt;
&lt;br /&gt;
        # Prevent Clanmembers from Autobalancing&lt;br /&gt;
        name=p.getName()&lt;br /&gt;
        for clantag in clantags:&lt;br /&gt;
         if name.find(clantag)&amp;gt;-1: return None&lt;br /&gt;
&lt;br /&gt;
        # Squadleader/Commander prevent from Change&lt;br /&gt;
        if p.isCommander(): return None&lt;br /&gt;
        if p.isSquadLeader(): return None&lt;br /&gt;
&lt;br /&gt;
        # Prevent squad members from change&lt;br /&gt;
        if p.getSquadId()&amp;gt;0: return None&lt;br /&gt;
&lt;br /&gt;
        # dont use autobalance when its suicide/changes team&lt;br /&gt;
        if p.getSuicide():&lt;br /&gt;
                p.setSuicide(0)&lt;br /&gt;
                return&lt;br /&gt;
&lt;br /&gt;
        aiPlayerBalance = 0&lt;br /&gt;
        team1 = 0&lt;br /&gt;
        team2 = 0&lt;br /&gt;
        for tp in bf2.playerManager.getPlayers():&lt;br /&gt;
                if tp.getTeam() == 1:&lt;br /&gt;
                        team1 += 1&lt;br /&gt;
                else:&lt;br /&gt;
                        team2 += 1&lt;br /&gt;
                if tp.isAIPlayer():&lt;br /&gt;
                        aiPlayerBalance += 1&lt;br /&gt;
                else:&lt;br /&gt;
                        aiPlayerBalance -= 1&lt;br /&gt;
&lt;br /&gt;
        if host.sgl_getIsAIGame():&lt;br /&gt;
                if not (aiPlayerBalance &amp;lt; 0):&lt;br /&gt;
                        if not p.isAIPlayer():&lt;br /&gt;
                                return&lt;br /&gt;
&lt;br /&gt;
        team2 = team2 * bf2.serverSettings.getTeamRatioPercent() / 100.0&lt;br /&gt;
&lt;br /&gt;
        if (p.getTeam() == 1):&lt;br /&gt;
                if (team2+1) &amp;lt; team1:&lt;br /&gt;
                        p.setTeam(2)&lt;br /&gt;
        elif (p.getTeam() == 2):&lt;br /&gt;
                if (team1+1) &amp;lt; team2:&lt;br /&gt;
                        p.setTeam(1)&lt;br /&gt;
&lt;br /&gt;
def onPlayerChangeTeams(p, humanHasSpawned):&lt;br /&gt;
&lt;br /&gt;
        if not bf2.serverSettings.getAutoBalanceTeam(): return&lt;br /&gt;
&lt;br /&gt;
        # dont teamswitch alive players, or they will have the wrong teams kit&lt;br /&gt;
        if p.isAlive(): return&lt;br /&gt;
&lt;br /&gt;
        if host.sgl_getIsAIGame():&lt;br /&gt;
                if humanHasSpawned: return&lt;br /&gt;
                if p.isAIPlayer(): return&lt;br /&gt;
&lt;br /&gt;
                # handling aiplayer team change autobalance when round not started&lt;br /&gt;
                team = p.getTeam()&lt;br /&gt;
                aiplayer = 0&lt;br /&gt;
&lt;br /&gt;
                for tp in bf2.playerManager.getPlayers():&lt;br /&gt;
                        if aiplayer == 0 and tp.getTeam() == team and tp.isAIPlayer():&lt;br /&gt;
                                aiplayer = tp&lt;br /&gt;
                                break&lt;br /&gt;
&lt;br /&gt;
                if aiplayer:&lt;br /&gt;
                        if p.getTeam() == 1: aiplayer.setTeam(2)&lt;br /&gt;
                        else: aiplayer.setTeam(1)&lt;br /&gt;
&lt;br /&gt;
        else:&lt;br /&gt;
                # checking to see if player is allowed to change teams&lt;br /&gt;
                team1 = 0&lt;br /&gt;
                team2 = 0&lt;br /&gt;
                for tp in bf2.playerManager.getPlayers():&lt;br /&gt;
                        if tp.getTeam() == 1: team1 += 1&lt;br /&gt;
                        else: team2 += 1&lt;br /&gt;
                if abs(team1 - team2) &amp;gt; 1:&lt;br /&gt;
                        if p.getTeam() == 1: p.setTeam(2)&lt;br /&gt;
                        else: p.setTeam(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Feautures  ==&lt;br /&gt;
&lt;br /&gt;
With all modifications you got a Autobalancescript with following Features:&lt;br /&gt;
&lt;br /&gt;
- Auto set Team 1 for Clanmembers on connect&lt;br /&gt;
- Protect Clanmembers from Autobalance&lt;br /&gt;
- Protect Commanders and Squadleaders from Autobalance&lt;br /&gt;
- Protect Squadmembers from Autobalance&lt;br /&gt;
&lt;br /&gt;
==  Feedback  ==&lt;br /&gt;
&lt;br /&gt;
You can give me a Feedback at nexus2kswiss(at)bs-dc.com&lt;br /&gt;
&lt;br /&gt;
--Nexus2k 06:02, 21 Jul 2005 (MDT)&lt;/div&gt;</summary>
		<author><name>Pireax</name></author>
	</entry>
</feed>