Page 10 of 10 FirstFirst ... 8910
Results 91 to 99 of 99

Thread: Dedicated Server Configuration - Sample - Weather + MultiClass REALLY FIXED! -2/25/18

  1. #91
    Kart Driver Rodgorth's Avatar
    Join Date
    Sep 2017
    Location
    Moscow
    Posts
    18
    Platform
    PC
    Hey guys,

    Having some troubles launching dedicated server under linux VM.
    The setup is pretty much default.

    Done the following steps:

    1) Installed Linux Mint MATE x64 on a VM
    2) Installed SteamCMD with 32bit libraries as per the DS instructions
    3) Installed Dedicated Server app
    4) Got the server.cfg from sample folder, placed it in root DS folder. Modified it a bit - changed server name, pass, disabled lua addons for now

    But the server fails to start (debug log is below).
    The VM does have the access to internet. Port forward is set-up on the router-side.
    I've disabled the Firewall completely. Checked if any other app uses the ports.

    Any thoughts on where shall I dig for the cause?
    Thanks!

    Code:
    //#########################################################
    
    [Session][Log] dbgsession/dbg 2019-06-05 @ 10.31.29/dedicatedserver.log
    
    [Session][ID] 02f0-7e36-2a9f-766d
    
    [Session][Platform] Linux
    
    [Session][Config] Release
    
    [Session][Exe] /home/steam/PCars2DS/DedicatedServerCmd.elf
    
    [Session][ExeBit] 64
    
    [Session][Date] 05/06/2019
    
    [Session][Time] 10:31:29
    
    [Session][Exe Built] Unknown
    
    [Session][Machine] Unknown
    
    [Session][GCC Version] 4.8.2
    
    [Session][Toolset] x86_64-pc-linux-gnu.GCC.4.8.2
    
    [Session][Title]
    
    [Session][BuildVer]
    
    [Session][BuildVerInt] 0
    
    [Session][BuildVerUnmod]
    
    [Session][BuildVerSimple]
    
    [Session][BuildVerInject]
    
    [Session][BuildVerInjSim]
    
    [Session][BaseVer] v1.5.946.0
    
    //#########################################################
    
    [10:31:29:625][0x9a359740] [Info ] [BLogBase::Init] [Internal] Initialised Log
    
    [10:31:29:630][0x9a359740] [Info ] [void NativeLogCallback] [General] Starting up the Dedicated Server Library.
    
    [10:31:29:631][0x9a359740] [Info ] [void NativeLogCallback] [General] Server configuration loaded:
    
    - server build version: 1
    
    - protocol version: 64 (1.0.0.64)
    
    - server name: TestyTest
    
    - max session size: 26
    
    - details: secure, bind IP INADDR_ANY, Steam port 8766, host port 27015, query port 27016, password protected yes
    
    - whitelist size: 0
    
    - blacklist size: 0
    
    - lua api: disabled
    
    - http api: disabled
    
    - allow empty join: enabled
    
    - game setup control: disabled
    
    - sports play : disabled
    
    [10:31:29:682][0x9a359740] [ERROR] [void NativeLogCallback] [General] SteamGameServer_Init failed
    
    [10:31:29:682][0x9a359740] [ERROR] [void NativeLogCallback] [General] Dedicated Server startup failed
    
    [10:31:29:682][0x9a359740] [Info ] [BLogBase::Term] [Internal] Terminating Log

  2. #92
    Rookie
    Join Date
    Jun 2019
    Posts
    1
    Platform
    PC
    Thanks for share. I seen your post and i resolv my problem.

  3. #93
    Rookie
    Join Date
    Aug 2019
    Posts
    3
    Platform
    PC
    Quote Originally Posted by MortICi View Post
    The setting in the LUA file is flipped, it states it should be 1, but actually setting it to 0 enables manual pit stops. At least that works for me, in the settings page for the server in the lobby it will show as disabled, but in session it should be manual.

    Code:
    // Force Manual Pitstops: 0 Enable 1 Disable -- This might get fixed in future ded server updates
    // -- Bugged values are reverse to what documentations states. NOTE: No visual change in In Game Lobby view
    "ManualPitStops" : 0,
    server.cfg I highlighted the sections to change and update to make your server unique, bulk of the settngs are in the rotate file.

  4. #94
    Rookie
    Join Date
    Jan 2012
    Posts
    1
    Thanks for all the hard work and useful information.
    After reading all the pages carefully I'm able to setup and run my own DS, great!

    As a test case, my brother and me joined our server (same class, multi class, ...) and it's all working fine until...we added some AI vehicles.
    The AI vehicles are added on the server, but they are always looking identical as our vehicles.

    Example: We use class 'Road F'.
    Player 1 uses A1 Quattro
    Player 2 uses Civic Type-R
    The AI is filled with A1 Quattro and Civic Type-R vehicles. The other vehicles in 'Road F' (Lancer Evo, Mégane) are never chosen by the AI.

    Is there a possibility to make them use all the vehicles (in the same class) randomly?
    I'm not using a LUA file. Can it be solved by using one?

  5. #95
    Rookie
    Join Date
    Oct 2019
    Posts
    4
    Platform
    PC
    Hello,

    I have a DS running and a few friends and i are racing every thuesday.
    Currently i have to change the sessions manually, no big deal but all is dependend of me.

    Now i would ask if it is possible to script the sms_rotate in a way that from thuesday 00am till thuesday the next week 9pm the next session will be the track, car and other settings in "practice" mode and then switch to the full session with pracrice, qualifying and race and after that change the track to the next till next thuesday?

    Thanks in advance

  6. #96
    WMD Member Asturbo's Avatar
    Join Date
    Jun 2012
    Location
    Asturias / Spain
    Posts
    1,295
    Platform
    PC
    Don't know if you can do that with the DS files (I don't know how do it), but I suggest you other alternatives:

    - Program two different DSs, one for practice and other for the race and with the Windows task scheduler, stop the practice server and start the race one, at desired hour.
    - Program a LUA rotation with practice for the maximun time and race configuration, with no cycle. Then when someone logs the lobbie, it starts ever with practice. When it's the time of the race, you can use "advance session" from the web interface.
    - You can also keep both servers running in different instances, one with the only practice session and the other with the race setup. Both can live together in same computer (this is what I've done). People can connect to the practice server during the week, and to the race server when it's time to race.

    One thing I recommend, is using the DS as service. That makes that after any reboot (or Windows Update), it always starts the DS. Also makes easier stop or launch the server from the services console and you don't have to deal with the DOS window that you can accidentaly close.
    Last edited by Asturbo; 03-12-2019 at 17:57.
    CPU: Intel i7-8700K | GPU: nVidia RTX2080 | RAM: Gskill 2x8GB DDR4 3200 | MB: Asus ROG Strix Z370 | SSD: Samsung EVO 970 500Gb | Monitor: Acer Predator Z35P UW WQHD | Wheel: Fanatec CSW 2.5 | SO: Windows 10 Pro 64bits
    WMD1 & WMD2 Gold Member /// Steam Profile /// Unofficial Issue List /// Button Box Label Template /// DS Flags Calculator /// Open Weather App /// DS Config Samples /// Google Standings /// PC3 wish list

  7. #97
    Rookie
    Join Date
    Oct 2019
    Posts
    4
    Platform
    PC
    Ok thanks for the reply, i tried to implement some of the ideas but nothing will work.

    I have configured my server_config.cfg like the one at the first page (except i my own inputs like name ect...) But everytime i try to use the rotate script it defaults to les mans (even if it is not mentioned in a script or config) and the rotate addon does not work.

    Can someone point me in a direction where i should look out for the failure?

    Thnaks in advance

    Thats the config Pw/Ip/names deleted

    HTML Code:
     "//" : "You can use dummy entries like this to write comments into the config. 'rem' and '#' are also supported as comment entries."
    // But in recent version of the server, standard C++ like one-liner comments are supported as well.
    
    //////////////////////////
    // Basic server options //
    //////////////////////////
    
    // Logging level of the server. Messages of this severity and more important will be logged. Can be any of debug/info/warning/error.
    logLevel : "info"
    
    // Number of gameplay events stored on the server. Oldest ones will be discarded once the game logs more.
    eventsLogSize : 10000
    
    // The server's name, this will appear in server browser (when implemented) and will be also the default name of sessions hosted on the server.
    name : 
    
    // Authenticate users with Steam to check VAC ban when set to true.
    secure : true
    
    // Password required to create sessions on the server as well as to join the sessions, password set in Create options is ignored on DS.
    password :
    
    // Maximum size of sessions that can be created on this server.
    // Note that setting this above 16 will allow sessions unjoinable by 32-bit clients to be created on the server.
    // The game also currently does not support sessions larger than 32, even if the server can be configured for up to 64 players.
    maxPlayerCount : 16
    
    // IP address where the server's sockets should be bound. Leave empty for 'all interfaces'.
    bindIP : 
    
    // ports used to communicate with Steam and game, they must all be accessible on the public IP of the server.
    steamPort : 8766
    hostPort : 27015
    queryPort : 27016
    
    // Delay between server ticks in milliseconds, when not hosting and when hosting a game, respectively.
    // Lower values will make the server more responsible and decrease latency by a bit at the expense of higher CPU usage.
    sleepWaiting : 50
    sleepActive : 10
    
    // Sports Play will use system sockets instead of Steam networking API. Recommended for offline LAN-only events.
    // Use cmdline switch -sportsplay serverIp:hostPort on client to host and join games on sportsPlay server.
    sportsPlay: false
    
    ///////////////////////////
    // Server access control //
    ///////////////////////////
    
    // NOTE: Usually you do not want to have these in your config, this is just a sample.
    // Especially the whitelist as used here will allow only one user with Steam ID onto this server 76561197994111033.
    // Use this as an example and modify the lists accordingly (most likely remove the whitelist entry completely),
    // or use sample server.cfg instead if you do not care about blacklisting/whitelisting.
    
    // Black list
    // Anyone in this list will not be allowed into the server.
    // You can use array or map/object. If the value is an object, the keys are ignored, but you can used the strings as comments with name or reason for being in the list.
    // If the value is an integer, it's interpreted as a Steam ID of the blacklisted user.
    // If it's a string, it's file from which the black list is loaded. The file can contain either an array or an object just like this one, and can reference more files.
    // Here we just load the list from file "blacklist.cfg"
    blackList : [ "blacklist.cfg" ]
    
    // White list
    // If this is not empty only whitelisted members will be allowed into the server. In that case the black list is ignored.
    // Usually you don't want to have this set at all and use passwords instead, but if you prefer to control server access by whitelisting instead, keep this in and enter the right IDs.
    // You can use array or map/object. If the value is an object, the keys are ignored, but you can used the strings as comments with name or reason for being in the list.
    // If the value is an integer, it's interpreted as a Steam ID of the whitelisted user.
    // If it's a string, it's file from which the white list is loaded. The file can contain either an array or an object just like this one, and can reference more files.
    // Here we load the list from file "whitelist.cfg", and also allow user with Steam ID 76561197994111033.
    whiteList : { "whitelist" : "whitelist.cfg" }
    
    
    ///////////////////////////
    // HttpApi configuration //
    ///////////////////////////
    
    // This provides http-based API and basic web-based controls using a built-in http server.
    // HttpApi is disabled by default, and if you enable it with everything else left to default it will listen only locally on 127.0.0.1:9000
    
    // Master enable/disable toggle.
    enableHttpApi : true
    
    // Similar to logLevel above but used only for libwebsockets output.
    // Note that all logging still goes through the main filter, so you won't be able to use more verbose logging here than the main level.
    httpApiLogLevel : "warning"
    
    // Interface name or IP where to bind the local http server providing the API and web-based controls.
    // This is the textual name of the interface as assigned by your OS, or IP address of the interface.
    // The default value is "127.0.0.1", change it to an empty string to bind the listen socket to all available interfaces.
    httpApiInterface : 
    
    // Port where the local http server listens.
    httpApiPort : 9000
    
    // Map with extra HTTP headers to add to HTTP API responses.
    // The keys are the conditions for adding the headers, the values are the headers to add.
    // There are no conditions supported yet, so just use "*" for a generic wildard for now, that will match everything in the future too.
    httpApiExtraHeaders : {
        "*" : "Access-Control-Allow-Origin: *"
    }
    
    // Http API access level overrides.
    // Each HTTP API endpoint defines its default access level, usually one of "public", "private" or "admin".
    // This map can override these levels to anything else. The keys are wildcard endpoint paths, and the values are the
    // access levels to use. The first path that matches will be used, processing them in the order as written here.
    // The wildcard patterns are case-sensitive and can contain:
    // - '*': matches 0 or more characters
    // - '%': matches 0 or more characters except for forward slash
    // - '?': matches 1 character
    httpApiAccessLevels : {
        // The default is empty, using defaults as defined by the endpoints themselves.
    
        // But you could for example use this to change all access levels to public (not recommended!)
        // "*" : "public"
    
        // Or this to hide the status from public
        // "" : "private"
        // "status" : "private"
    
        // And similar to hide the help and lists from public
        // "api/help" : "private"
        // "api/list*" : "private"
    
        // As you can see from the example above, the paths should be written with no initial or trailing slashes.
    }
    
    // Filtering rules for the access levels.
    // The default access levels are "public", "private" and "admin", but the httpAccessLevels above can define any additional levels.
    // This map then tells the server who has access to which level. It's a map from level names to filtering rules.
    //
    // Filtering rules are then specified as a list of structures, processed in the order as written in the config.
    // Each rule structure contains a type" and then type-specific fields. The supported types are:
    // - "accept": Accept this request, no additional checks.
    // - "reject": Reject this request, no additional checks.
    // - "reject-password": Reject this request and let the client know that a password is required, no additional checks.
    // - "ip-accept": Accept this request if it matches the "ip" mask in CIDR notation (for example, "192.168.1.0/24")
    // - "ip-reject": Reject this request if it matches the "ip" mask in CIDR notation (for example, "192.168.1.0/24")
    // - "user": Accept this request if it authenticates as given "user".
    // - "group" : Accept this request if it authenticates as given "group".
    //
    // User/group authentication is done using the standard HTTP basic access authentication (https://en.wikipedia.org/wiki/Basic_access_authentication).
    httpApiAccessFilters : {
    
        // Public rules. The default is to accept everything.
        "public" : [
            { "type" : "accept" }
        ],
    
        // Private rules. The default is to accept queries from localhost, queries authenticated as users in the "private" group
        // and to reject anything else.
        "private" : [
            { "type" : "ip-accept", "ip" : "127.0.0.1/32" },
            { "type" : "group", "group" : "private" },
            { "type" : "reject-password" }
        ],
    
        // Admin rules. The default is to accept queries from localhost, queries authenticated as users in the "admin" group
        // and to reject anything else.
        "admin" : [
            { "type" : "ip-accept", "ip" : "127.0.0.1/32" },
            { "type" : "group", "group" : "admin" },
            { "type" : "reject-password" }
        ],
    
    }
    
    // User list. Map from user names to passwords, in plain text.
    httpApiUsers : {
         
    }
    
    // User groups. Map from group names to lists of users in said groups.
    httpApiGroups : {
         "private" : [ ],
         "admin" : [ ],
    }
    
    // Root directory where the static files for the web tool are located. Relative to current directory.
    staticWebFiles: "web_files"
    
    
    //////////////////////////
    // LuaApi configuration //
    //////////////////////////
    
    // Lua API allows the server to be extended by in-server scripting in Lua.
    // The server is running Lua version 5.3, currently with no sandboxing applied to the add-ons. All standard Lua library functions are available.
    
    // WARNING: The LuaApi is not final and the following breaking changes are planned soon:
    // - Rename Lua addon metadata files from *.txt to *.json
    // - Remove default config from the metadata and put it into separate file *_default_config.json
    // - Separate config and persistent data, so that data saved by addons will not pollute the config files, and the config files will retain all comments from the default files.
    
    // Master enable/disable toggle.
    enableLuaApi : true
    
    // Root directory from which the Lua addons are loaded. Relative to current directory if it's not absolute.
    luaAddonRoot: "lua"
    
    // Root directory where the addon configs will be stored if written out by addons. Default configs are defined in the addon base text files.
    luaConfigRoot: "lua_config"
    
    // Root directory where the addon output will be written, once supported. For now the io functions can write anywhere, but this will be limited to this directory in the future.
    luaOutputRoot: "lua_output"
    
    // Names of all Lua addons to load. The addons will be loaded in the specified order. Each addon can list other addons as its dependencies, which attempt to load those first.
    // The server will load addons from directory specified in "luaAddonRoot", loading of each addon will start by loading its config from ADDON_NAME/ADDON_NAME.txt
    luaApiAddons : [
    
        // Core server bootup scripts and helper functions. This will be always loaded first even if not specified here because it's an implicit dependency of all addons.
        "sms_base",
    
        // Automatic race setup rotation.
        "sms_rotate",
    
        // Sends greetings messages to joining members, optionally with race setup info, optionally also whenever returning back to lobby post-race.
        "sms_motd",
    
        // Tracks various stats on the server - server, session and player stats.
        "sms_stats",
    ]
    
    // Names of all lua libraries that are allowed to be used by any addons.
    luaAllowedLibraries : [
    
        "lib_rotate"
    ]
    
    
    ////////////////////////////////
    // Game setup control options //
    ////////////////////////////////
    
    // Set to true to make this server show up in the browser even if it's empty.
    allowEmptyJoin : true
    
    // Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
    // Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
    // This must be set to "true" for the following attributes to work: ServerControlsTrack, ServerControlsVehicleClass, ServerControlsVehicle
    controlGameSetup : true
    
    // Initial attribute values, see /api/list/attributes/session for the full list.
    // These attributes will be used when joining an empty server via the borwser (if allowEmptyJoin is true) and as the intial attributes for the set_attributes and set_next_attributes APIs (if controlGameSetup is true)
    // The defaults set these values:
    sessionAttributes : {
        // The host player can control track selection if set to 0. Set to 1 to disable track selection in the game.
        "ServerControlsTrack" : 1,
    
        // The host player can change the vehicle class by going through the garage if set to 0. Set to 1 to disallow players changing the class.
        // Flag FORCE_SAME_VEHICLE_CLASS (1024) should be also set for this to make sense, otherwise players are able to choose cars from any class.
        "ServerControlsVehicleClass" : 1,
    
        // Players can change their vehicle if set to 0. Set to 1 to disallow players changing the vehicle.
        // Flag FORCE_IDENTICAL_VEHICLES (2) should be also set for this to make sense.
        "ServerControlsVehicle" : 0,
    
        // Grid size up to 32, all reserved to players, so no AI.
        // Note that 32-bit clients will not be able to join the game if this is larger than 16.
        "GridSize" : 24,
        "MaxPlayers" : 24,
    
    
    }

    And that is the rotate config

    HTML Code:
     // Config version.
    version : 7
    
    // Default configuration.
    config : {
    
    	// Is the current rotation index persistent? If true, the rotation will continue after server restart,
    	// If false, the rotation will always start from the first setup.
    	// You can always delete the sms_rotate_data.json file from lua_config to reset the persisted index.
    	"persist_index" : false,
    
    	// The default setup. This is a table with attributes and values. The following rules apply to the attributes:
    	// - If TrackId is specified: The track to enforce. Automatically sets 1 to ServerControlsTrack
    	// - If VehicleModelId is specified: The vehicle to enforce. Automatically sets 1 to ServerControlsVehicle, sets FORCE_IDENTICAL_VEHICLES to Flags
    	// - If VehicleClassId is specified: The class to enforce. Automatically sets 1 to ServerControlsVehicleClass, sets FORCE_SAME_VEHICLE_CLASS to Flags
    	// - Track, vehicle model, vehicle class and all enum/flags attributes can use values in string forms - so you can use either track id, or track name.
    	// - Flags in string form can contain multiple flags separated by comma, so for example "ABS_ALLOWED,SC_ALLOWED,TCS_ALLOWED"
    	// - The setup should never contain any of the "ServerControls" attributes, those are decided automatically.
    	// - The setup should never contain both VehicleModelId and VehicleClassId at the same time. Restrict either the class or specific vehicle.
    	// - The Flags attribute should never contain FORCE_IDENTICAL_VEHICLES or FORCE_SAME_VEHICLE_CLASS flags, those are decided automatically.
    	"default" : {
    		"PracticeLength" : 240,
    		"QualifyLength" : 10,
    		"RaceLength" : 20,
    
    		"Flags" : "AUTO_START_ENGINE,ONLINE_REPUTATION_ENABLED,WAIT_FOR_RACE_READY_INPUT,TIMED_RACE,GHOST_GRIEFERS,ANTI_GRIEFING_COLLISIONS,FORCE_REALISTIC_DRIVING_AIDS",
    		"DamageType" : 3,
    		"TireWearType" : 0,
    		"FuelUsageType" : 0,
    		"PenaltiesType" : 1,
    		"AllowedViews" : "Any",
    		"AllowablePenaltyTime" : 10,
        "PitWhiteLinePenalty" : 0,
        "DriveThroughPenalty" : 1,
    		"ManualPitStops" : 1,
    		"ManualRollingStarts" : 0,
    		"MinimumOnlineRank" : "U",
    		"MinimumOnlineStrength" : 100,
    
    		"RaceDateYear" : 2019,
    		"RaceDateMonth" : 7,
    		"RaceDateDay" : 6,
    		"RaceDateHour" : 14,
    
    		"RaceWeatherSlots" : 1,
    		"RaceWeatherSlot1" : "Clear",
    		"RaceWeatherSlot2" : "Clear",
    		"RaceWeatherSlot3" : "Clear",
    		"RaceWeatherSlot4" : "Clear",
    	},
    
    	// The rotation. Array of setups to rotate. If empty, just the default setup will be used with no actual rotation happening.
    	//
    	// These setups are applied on top of the default setup, then applied to the game. Previous setup in the rotation is never used.
    	// So for example if you wanted to repeat the same track in multiple consecutive setups, different from the default track,
    	// each of those setups needs to explicitly include that track. Also remember that apart from the flags nothing can be "removed"
    	// from the default setup, so if the default setup contains a track, some track will always be enforced (either the default one,
    	// or the setup-specific one). And one last thing, these override setups can never include an attribute that's not specified in
    	// the default setup - it can just override some of the default attributes, not add new ones. The only exception are the
    	// track/vehicle/class attributes.
    	//
    	// Attributes in these setups can have a special attribute RemoveFlags set, which will remove the specified flags from the default
    	// setup instead of adding them to it (which is what the Flags attribute will do)
    	"rotation" : [
    		{
    			
    			"TrackId" : "Red Bull Ring GP",
    			"VehicleModelId" : "Formula Renault 3.5",
    			"PracticeLength" : 20,
    			"QualifyLength" : 10,
    			"RaceLength" : 20,
    			"RaceDateHour" : 14,
    			"RaceWeatherSlots" : 1,
    			"RaceWeatherSlot1" : "Clear",
    			"RaceWeatherSlot2" : "Clear",
    			"RaceWeatherSlot3" : "Clear",
    			"RaceWeatherSlot4" : "Clear",
    		},
    		{
    			
    			"TrackId" : "Red Bull Ring GP",
    			"VehicleModelId" : "Formula Renault 3.5",
    			"PracticeLength" : 20,
    			"QualifyLength" : 10,
    			"RaceLength" : 20,
    			"RaceDateHour" : 14,
    			"RaceWeatherSlots" : 1,
    			"RaceWeatherSlot1" : "Clear",
    			"RaceWeatherSlot2" : "Clear",
    			"RaceWeatherSlot3" : "Clear",
    			"RaceWeatherSlot4" : "Clear",
    		},
    		{
    			
    			"TrackId" : "Red Bull Ring GP",
    			"VehicleModelId" : "Formula Renault 3.5",
    			"RaceLength" : 20,
    			"RaceDateHour" : 14,
    			"RaceWeatherSlots" : 1,
    			"RaceWeatherSlot1" : "Clear",
    			"RaceWeatherSlot2" : "Clear",
    			"RaceWeatherSlot3" : "Clear",
    			"RaceWeatherSlot4" : "Clear",
    		}
    	]
    }
    Last edited by H3avyMetal; 10-12-2019 at 07:58.

  8. #98
    Superkart Pilot
    Join Date
    May 2017
    Posts
    220
    Platform
    PC
    Remove "GHOST_GRIEFERS" within FLAGS and it should work.
    The following user likes this Post: H3avyMetal


  9. #99
    Rookie
    Join Date
    Oct 2019
    Posts
    4
    Platform
    PC
    Thanks that was it

Similar Threads

  1. Replies: 6
    Last Post: 09-05-2019, 01:21
  2. Dedicated Server configuration
    By Visceral_Syn in forum Multiplayer
    Replies: 330
    Last Post: 12-10-2018, 21:09
  3. Replies: 21
    Last Post: 03-10-2017, 19:42
  4. Replies: 8
    Last Post: 25-04-2017, 23:52
  5. Replies: 12
    Last Post: 23-10-2015, 21:10

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •