FGMEMBERS Server | How To Use
Posted: Sat Sep 26, 2015 12:44 am
THE FOLLOWING CODE SNIPPETS HAVE BEEN AMENDED TO MATCH NEW SERVER IP AS OF DEC 31, 2015. PLEASE UPDATE YOUR FILES.
------------------------------------------------------------------------------------------------------------------------------------------------------------------
The FGMEMBERS multiplayer server is now available! This server is designed to provide a stable and oppression-free experience for aviation enthusiasts. Due to its strategic location in New Jersey, USA, the average pings are kept below 100ms for Central Europe and some of Eastern Europe.
Advantages over the official servers:
Disadvantages:
Connection info:
Configuration for Multiplayer Dialog
Do not skip the following configuration, otherwise you won't be able to connect through FG!
METHOD 1 (The Right Way):
METHOD 2 (The Quick and Dirty Way):
This is my configuration for FG 3.7, your version may be different. If this fails, try method 1.
Congrats! You now have this pretty button:
Tracking and FGMap
In the near future, a tracking system will be made available. But for right now, there is no tracker!
As of now, FGMap is only available though external providers. Link
------------------------------------------------------------------------------------------------------------------------------------------------------------------
The FGMEMBERS multiplayer server is now available! This server is designed to provide a stable and oppression-free experience for aviation enthusiasts. Due to its strategic location in New Jersey, USA, the average pings are kept below 100ms for Central Europe and some of Eastern Europe.
Advantages over the official servers:
- No banning without warning and valid reason.
- Not interconnected with official servers; thus more freedom to fly in places such as SFO.
- Other pilots and ATC are visible from up to 600 NM away! This allows for a larger ATC coverage and easier communication.
Disadvantages:
- Isolation (Let's make it active!)
- No tracking system (for the moment)
Connection info:
Code: Select all
Address: 172.93.103.204
Port: 16605
Configuration for Multiplayer Dialog
Do not skip the following configuration, otherwise you won't be able to connect through FG!
METHOD 1 (The Right Way):
- OPEN $FG_ROOT/gui/dialogs/multiplayer.xml (You can backup if you'd like)
- FIND this line:
Code: Select all
var static_serverList = [
- On the NEXT line, ADD this:
Code: Select all
['172.93.103.204', 'New Jersey, USA'],
- FIND these lines:
Code: Select all
<layout>hbox</layout>
<default-padding>10</default-padding>
<empty><stretch>true</stretch></empty> - Starting from the NEXT line, ADD this: (or alternatively, add after the first button)
Code: Select all
<button>
<legend>Connect to FGMEMBERS</legend>
<equal>false</equal>
<enable>
<not>
<property>/sim/multiplay/online</property>
</not>
</enable>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
fgcommand("multiplayer-connect", props.Node.new({
"servername": "172.93.103.204 - New Jersey, USA",
"rxport": 16605,
"txport": 16605
}));
</script>
</binding>
</button> - Save
- If you were running FG this whole time, go to Debug->Reload GUI to update the dialog.
METHOD 2 (The Quick and Dirty Way):
This is my configuration for FG 3.7, your version may be different. If this fails, try method 1.
- OPEN $FG_ROOT/gui/dialogs/multiplayer.xml (You can backup if you'd like)
- REPLACE ALL contents with this:
Code: Select all
<?xml version="1.0"?>
<PropertyList>
<name>multiplayer</name>
<layout>vbox</layout>
<resizable>false</resizable>
<nasal>
<open><![CDATA[
if ((getprop("/sim/multiplay/selected-server") == nil) or
(getprop("/sim/multiplay/selected-server") == "" ) ){
var tx = getprop("/sim/multiplay/txhost");
var dlg = cmdarg();
var servers = cmdarg().getChildren("group")[1].getChildren("combo")[0].getChildren("value");
foreach (var s; servers) {
var server = s.getValue();
var host = split(" ", server)[0];
if (host == tx) {
setprop("/sim/multiplay/selected-server", server);
}
}
}
var servers = props.globals.getNode("/sim/gui/dialogs/multiplay/servers", 1);
var updateServers = func(n) {
if( !n.getValue() ) return;
servers.removeChildren("value");
# get the results list from the server
var serverlist = props.globals.getNode("/sim/multiplay/server-list", 1);
var i=0;
foreach (var s; serverlist.getChildren("server")) {
if (!s.getNode("online").getBoolValue()) {
continue; # skip offline servers
}
# label is name and location, for the moment
# should we include the number of users? or wait until we
# have a better UI toolkit?
var nm = s.getNode("hostname").getValue() ~ " - " ~ s.getNode("location").getValue();
servers.getNode("value[" ~ i ~ "]", 1).setValue(nm);
i += 1;
}
gui.dialog_update("multiplayer", "host");
}
var static_serverList = [
['172.93.103.204', 'New Jersey, USA'],
['mpserver01.flightgear.org', 'Frankfurt, Germany'],
['mpserver02.flightgear.org', 'Kansas, USA'],
['mpserver03.flightgear.org', 'Germany'],
['mpserver04.flightgear.org', 'United Kingdom'],
['mpserver05.flightgear.org', 'Chicago, USA'],
['mpserver07.flightgear.org', 'Wisconsin, USA'],
['mpserver08.flightgear.org', 'Frankfurt am Main, Germany'],
['mpserver09.flightgear.org', 'Koln, Germany'],
['mpserver10.flightgear.org', 'Montpellier, France'],
['mpserver11.flightgear.org', 'Vilnius, Lithuania'],
['mpserver12.flightgear.org', 'Amsterdam, Netherlands'],
['mpserver13.flightgear.org', 'Grenoble, France']
];
var updateServersFailed = func(n) {
if( !n.getValue() ) return;
debug.dump("Failed to retrieve server list!");
servers.removeChildren("value");
var i=0;
foreach (var s; static_serverList) {
# create the node the PUI combo
var nm = s[0] ~ " - " ~ s[1];
servers.getNode("value[" ~ i ~ "]", 1).setValue(nm);
i += 1;
}
gui.dialog_update("multiplayer", "host");
}
# listen for results arriving
setlistener("/sim/multiplay/got-servers", updateServers);
setlistener("/sim/multiplay/get-servers-failure", updateServersFailed);
fgcommand("multiplayer-refreshserverlist");
]]>
</open>
<close>
</close>
</nasal>
<!-- titlebar -->
<group>
<layout>hbox</layout>
<empty><stretch>1</stretch></empty>
<text>
<label>Multiplayer Settings</label>
</text>
<empty><stretch>1</stretch></empty>
<button>
<pref-width>16</pref-width>
<pref-height>16</pref-height>
<legend></legend>
<keynum>27</keynum>
<border>2</border>
<binding>
<command>dialog-close</command>
</binding>
</button>
</group>
<hrule/>
<!-- main dialog area -->
<group>
<layout>table</layout>
<halign>center</halign>
<text>
<row>0</row>
<col>0</col>
<label> Options:</label>
<halign>right</halign>
</text>
<checkbox>
<row>0</row>
<col>1</col>
<colspan>2</colspan>
<halign>left</halign>
<name>hide-replay</name>
<label>Hide replay sessions over MP (less annoying to other players)</label>
<property>/sim/multiplay/freeze-on-replay</property>
<binding>
<command>dialog-apply</command>
<object-name>hide-replay</object-name>
</binding>
</checkbox>
<checkbox>
<row>1</row>
<col>1</col>
<colspan>2</colspan>
<halign>left</halign>
<name>ai-traffic</name>
<label>Show AI Traffic (mixing MP and AI traffic may be confusing)</label>
<property>/sim/traffic-manager/enabled</property>
<binding>
<command>dialog-apply</command>
<object-name>ai-traffic</object-name>
</binding>
</checkbox>
<text>
<row>2</row><col>0</col>
<halign>right</halign>
<label> Callsign:</label>
</text>
<input>
<row>2</row><col>1</col>
<halign>left</halign>
<property>/sim/multiplay/callsign</property>
<enable>
<not>
<property>/sim/multiplay/online</property>
</not>
</enable>
</input>
<text>
<row>3</row><col>0</col>
<halign>right</halign>
<label>Server:</label>
</text>
<combo>
<name>host</name>
<halign>left</halign>
<row>3</row><col>1</col>
<colspan>2</colspan>
<pref-width>350</pref-width>
<property>/sim/multiplay/selected-server</property>
<editable>false</editable>
<properties>/sim/gui/dialogs/multiplay/servers</properties>
</combo>
<!-- status area -->
<text>
<visible>
<not><property>/sim/multiplay/online</property></not>
</visible>
<row>5</row>
<col>1</col>
<halign>left</halign>
<label>Not connected</label>
</text>
<text>
<visible>
<property>/sim/multiplay/online</property>
</visible>
<row>5</row>
<col>1</col>
<halign>left</halign>
<label>MMMMMMMMMMMMMMMMM</label>
<format>Connected to %s</format>
<property>/sim/multiplay/txhost</property>
<live>true</live>
</text>
</group>
<!-- button area -->
<hrule/>
<group>
<layout>hbox</layout>
<default-padding>10</default-padding>
<empty><stretch>true</stretch></empty>
<button>
<legend>Connect</legend>
<equal>true</equal>
<enable>
<not>
<property>/sim/multiplay/online</property>
</not>
</enable>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
fgcommand("multiplayer-connect", props.Node.new({
"servername": getprop("/sim/multiplay/selected-server"),
"rxport": 5000,
"txport": 5000
}));
</script>
</binding>
</button>
<button>
<legend>Connect to FGMEMBERS</legend>
<equal>false</equal>
<enable>
<not>
<property>/sim/multiplay/online</property>
</not>
</enable>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
fgcommand("multiplayer-connect", props.Node.new({
"servername": "172.93.103.204 - New Jersey, USA",
"rxport": 16605,
"txport": 16605
}));
</script>
</binding>
</button>
<button>
<legend>Disconnect</legend>
<equal>true</equal>
<enable>
<property>/sim/multiplay/online</property>
</enable>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>multiplayer-disconnect</command>
<subsystem>mp</subsystem>
</binding>
</button>
<button>
<row>1</row><col>2</col>
<legend>Server Status</legend>
<binding>
<command>open-browser</command>
<path>http://mpmap01.flightgear.org/mpstatus/</path>
</binding>
</button>
<button>
<legend>Close</legend>
<default>true</default>
<equal>true</equal>
<binding>
<command>dialog-close</command>
</binding>
</button>
<empty><stretch>true</stretch></empty>
</group>
</PropertyList> - Save
- If you were running FG this whole time, go to Debug->Reload GUI to update the dialog.
Congrats! You now have this pretty button:
Tracking and FGMap
In the near future, a tracking system will be made available. But for right now, there is no tracker!
As of now, FGMap is only available though external providers. Link