pyx.cookie_domain=.localhost pyx.max_users=100 pyx.max_games=25 pyx.include_inactive_cardsets=false pyx.broadcast_connects_and_disconnects=true pyx.global_chat_enabled=true pyx.game_chat_enabled=true # allow fill-in-the-blank cards at all. Limits are set via constants in GameOptions. pyx.allow_blank_cards=true # allow identification codes to be used without HTTPS pyx.insecure_id_allowed=true # set this to some secure random value, and never change it, unless you want to break all codes pyx.id_code_salt= # comma-separated listed of IP addresses (v4 or v6) from which users are considered admins. # IPv6 addresses must be fully spelt out without omitting groups of 0s with :: pyx.admin_addrs=127.0.0.1,0:0:0:0:0:0:0:1 # comma-separated list of strings banned from appearing in nicks. pyx.banned_nicks=xyzzy # The name of a class that implements net.socialgamer.cah.util.ChatFilter.ShadowBannedStringProvider # which will then be called to get the shadowbanned strings. # Ideally we'd just have the list of strings here, but providing unicode characters directly gets # mangled during the build process, and for some reason unicode escapes were not being loaded # properly at runtime. # If this is blank, it is ignored and no strings will cause such filtering to occur. pyx.shadowban_strings_provider= # Settings for global chat protection. Some of these do not apply to game chats. # Ratio of 'basic' characters to length of message. Basic characters are defined by # Character.isJavaIdentifierPart, which stipulates: # -it is a letter # -it is a currency symbol (such as '$') # -it is a connecting punctuation character (such as '_') # -it is a digit # -it is a numeric letter (such as a Roman numeral character) # -it is a combining mark # -it is a non-spacing mark # -isIdentifierIgnorable(codePoint) returns true for the character pyx.global.basic_ratio=.5 # A message must have at least this many characters for that ratio to apply. pyx.global.basic_min_len=10 # Message longer than min_len characters cannot have more than ratio of CAPS CHARACTERS pyx.global.capslock_min_len=50 pyx.global.capslock_ratio=.5 # messages longer than min_len characters require at least min_count spaces between words pyx.global.spaces_min_len=50 pyx.global.spaces_min_count=4 # this many messages to global chat in that many seconds is considered chatting too fast. pyx.global.flood_count=3 # seconds pyx.global.flood_time=25 # Messages with more than repeated_words_min_count words must have at least # repeated_words_unique_ratio unique words in them. pyx.global.repeated_words_min_count=10 pyx.global.repeated_words_unique_ratio=.5 # Settings for game chat protection. If it isn't listed here, it isn't supported. # same but for game chats pyx.game.flood_count=5 # seconds pyx.game.flood_time=30 # Game options pyx.game.min_score_limit=4 pyx.game.default_score_limit=8 pyx.game.max_score_limit=69 pyx.game.min_player_limit=3 pyx.game.default_player_limit=10 pyx.game.max_player_limit=20 pyx.game.min_spectator_limit=0 pyx.game.default_spectator_limit=10 pyx.game.max_spectator_limit=20 pyx.game.min_blank_card_limit=0 pyx.game.default_blank_card_limit=0 pyx.game.max_blank_card_limit=30 # for production use, use postgres #hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect #hibernate.driver_class=org.postgresql.Driver #hibernate.url=jdbc:postgresql://localhost/pyx # for local use, you can also use sqlite hibernate.dialect=net.socialgamer.cah.hibernate.SqliteDialect hibernate.driver_class=org.sqlite.JDBC hibernate.url=jdbc:sqlite:pyx.sqlite # these likely need specified even with sqlite, even though they don't matter hibernate.username=pyx hibernate.password=CorrectHorseBatteryStaple # debugging information hibernate.sql.show=false hibernate.sql.format=false # second-level hibernate cache. # vastly reduces database load at expense of data potentially being stale. # use an in-memory cache provider. this is not suitable for long-term use, however I am using it for # my servers for the time being -- better than nothing #hibernate.cache.use_second_level_cache=true #hibernate.cache.use_query_cache=true #hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # to turn it off, use these settings instead. you will hit the db a lot more often. hibernate.cache.use_second_level_cache=false hibernate.cache.use_query_cache=false hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider # If the server should send replay IDs to clients after certain events, and if the client should # display a permalink to them. You must be using the KafkaMetrics implementation, and have # pyx-metrics-processor running somewhere to put the data into a database, and have # pyx-metrics-viewer running somewhere connected to that database. The URL to the viewer is provided # below. If you don't know what any of that is, you certainly don't have it running, so leave these # set to false. pyx.metrics.game.enabled=false pyx.metrics.round.enabled=false pyx.metrics.session.enabled=false pyx.metrics.user.enabled=false # Format string to the URL to view previous gameplay. Must contain exactly one %s which will be # replaced with the event's ID. pyx.metrics.game.url_format=http://localhost:4080/game/%s pyx.metrics.round.url_format=http://localhost:4080/round/%s pyx.metrics.session.url_format=http://localhost:4080/session/%s pyx.metrics.user.url_format=http://localhost:4080/user/%s # Metrics logger implementation. pyx.metrics.impl=net.socialgamer.cah.metrics.NoOpMetrics # for kafka metrics kafka.host=kafka-host:9092 kafka.topic=pyx-metrics # if this is false, the rest don't matter kafka.ssl=false kafka.truststore.path= kafka.truststore.password= # if this is false, the rest don't matter kafka.ssl.usekey=false kafka.keystore.path= kafka.keystore.password= kafka.key.password= # only SCRAM-SHA-512 supported; if this is false, the rest don't matter # must be used with ssl, does not need client key kafka.sasl=false kafka.sasl.username= kafka.sasl.password= # GeoIP database for analytics. If unset, will not be used. # Only used if the above is not NoOpMetrics. # See README.md for instructions. geoip.db=