Cities: Skylines

Cities: Skylines

Telemetry Control
 This topic has been pinned, so it's probably important
knighthawkGP  [developer] 16 Nov, 2015 @ 9:02am
Release Notes
Telemetry Control v1.2.2-f3 Build 02
------------------------------------

Purpose:
Basically it lets you control what information the game sends back to Paradox.
By default everytime you start the game, open a map, load a game, end a game, quit the application or do a few other things it will send information to Paradox \ Colassal Order about what you are doing. The mod allows you to selectively control what information you want to allow to be sent, or to disable most of it.

Can't I just block this via my software based or hardware based firewall\networking device?
Yes, you certainly can, and still should if you like.

So why use this mod?
If you are blocking via the url or ip method it's all or nothing, maybe you don't mind sending certain information. Also doing so could produce errors in your logs, requests still get sent and processes have to wait for responses that will not come, why not just stop the requests from happening in the first place? Also maintaining the other methods could be pain depending on the particulars of the situation and your setup or level of technical knowledge. Maybe you just want to see what's trying to be sent, if so there is a setting for that in the mod.

What can be blocked:
- See the screenshot, they are mostly self-explanatory and the tooltips that show when you hover over each option entry in the mod give you some detail.

Disable Custom Content: Disables telemetry about what custom content you load with a map. It includes information such has counts of building, props ,trees , vehicles, mods, and details about every enabled mod. Funny enough this would actually be useful if logged to your log file for save file debugging...but it's not it's just sent off to Paradox.

Disable Session Start: Disables telemetry about what Session Starts(loading a map).It includes information such has mapname, mapfilename, loadmode, environment, inverted traffic and map guid.

Disable Session Loaded: Disables telemetry about a Loaded Session (map loading completed). It includes information such has current time, time in your map, and how long part of the load took to execute.

Disable Session End: Disables telemetry about a Session End (map unloaded). It includes data that a session has ended, and of what type it was (map,game,asset).

Disable Exception Reporting: Disables telemetry about an Exception Error occuring. This only sends the 'type' of error and the basic error message, it does not send a stack trace.

Disable OnAppQuit: Disables telemetry sent when you exit the game. This includes data that you exited the game and a timestamp.

Disable Store Clicks: Disables telemetry sent when you click on a store item.\n This only sends that you clicked on the store button.

Disable Feed Clicks: Disables telemetry sent when you click on a workshop feed\news item. This sends that you clicked on one and the target steamAppID or url upon which you clicked.

Disable Paradox Login: Disables telemetry sent when the game logs you into your paradox account. This sends data that you were auto-logged in and a timestamp.

Enable All SendToFile Only: Enables all telemetry - but nothing will be sent to Paradox, only logged in your log file.

DisableWorkshopAdPanel: Disables the workshop 'feed' panel, does NOT disable Workshop in general. There is no telemetry directly associated with disabling this. I simply find the feeds a waste of bandwidth and I really don't like it cause I'm wierd like that, it's there cause I wanted, probably nobody but me will use it.

NoOpThePush: This is a master overide to make Telemetry.Push() (function that sends the data) do absolutely nothing. If set nothing will be sent OR even logged (if not in verbose logging mode), it was there during testing as yet another option...I've left it for now.

SetURL To LocalHost: Sets the Paradox API URL to whatever you have in your config file.\n The default is 'https://localhost:49100/cities' if enabled. Can be used if you want to enable everything but send data your own web server.

Disable All Telemetry: Disables all telemetry - Nothing will be sent to Paradox. You do NOT have to select the individual options if this is set.

Enable All Telemetry: Enables all telemetry - The game's default behavior.

What can't be blocked without additional steps:
*Game bootup \ startup event
*Unique system information sent on startup

Why can't those two items be blocked by this mod?
They happen too early in the start-up process for a mod to stop. A mod can't stop actions that take place before the mod itself is loaded. To block those items you'll need another method or a patched Assembly-CSharp.dll game file.

Why are they spying on me?
I'm sure they'd claim they aren't really trying to spy on you. 90% of the data the goes back to them is likely very helpful in chasing down bugs, particularly ones that effect a large number of people or specific system types. Additionally it provides them insight into the machine specs of the people who are actively playing thier game, how many and which mods are in use, number of certain 'things' in your maps,etc.
That said, while I actually think the default for sending this info should probably be set to 'on' they've provided no 'off' setting, which very much annoys me. It also seems excessive to me to associate my steamid and\or pdx account information with every single piece of telemetry.

What's with this disable workshop ad option?
Cause I don't like that 'feed' i'm sure most people love it, personally I don't want too see it and it had no off-switch. So it comes along for the ride in the mod. If enabled it'll disable that scrolling feed and display a message that it's disabled. It DOES not disable the workshop in anyway what so ever, just the scrolling feed.


Additional options to block those two items mentioned
-----------------------------------------------------
Using a patched dll

You will need to replace one of your game dll's with a patched version. The patched version forces that data to be logged to your log file instead of sent to PDX. If using a patched dll is not something you want to do, or you don't trust me, that's cool I fully understand and this method is not for you then. In fact I'm not going to provide instructions, if you have a clue you'll know what to do with with the patched dll that you can find in bin folder of github repository, if you don't, then, again this method is not for you.

Hosts file or other SW\HW blocking tool
Adding 127.0.0.1 opstm.paradoxplaza.com to your hosts file will redirect all traffic to your local machine. Again, you could just use this instead of the mod, but you might get some http response timeout type errors in your logs, or maybe not. Be aware using a host file will stop anything trying to communicate with that address, like other paradox games. If you have something (software or hardware) that can block based on full url you'll want to feed it https://opstm.paradoxplaze.com/cities.


*Acknowledgements*
----------------------------
This mod makes use of Sebastian Schöner's (aka cope ) CitiesSkylinesDetour project, and would not be possible without it. You can find his great project here:
https://github.com/sschoener/cities-skylines-detour
Thanks Sebastian for sharing such for reuse with the modding community.

This project's sourcecode can be found on Github -- Here --[github.com]

**Compatibility**
-----------------------
Other mods that detour\replace Telemetry related functions. However I'm unaware of any mod that touches those besides this one.
Last edited by knighthawkGP; 16 Nov, 2015 @ 12:57pm
< >
Showing 1-2 of 2 comments
knighthawkGP  [developer] 16 Nov, 2015 @ 9:03am 
TelemetryControl_Config.xml options file is located in the root of your Cities Skylines install. For most people that would be <steaminstallfolder>\steamapps\common\Cities_Skylines

Configuration File Options


<DebugLogging>false</DebugLogging>
This enables or disables debug logging. You probably don't need this unless you are having a problem. If you are having a problem you can turn this on via the Options setting in the game, or set it to 'true' here in the config file and reload. Valid values are 'true|false'.

<DebugLoggingLevel>0</DebugLoggingLevel>
This controls the level of detail. Debugging set to true and this to '0' is the first level of detail.
Setting this past '0' or '1' for most of you will not be needed. Setting it to level '2' will record almost everything it does. Level 3 is developer level only and is not meant to be turned on unless asked to by me. Valid values are integers between 0 and 3 - values are basically ignored if DebugLogging is set to 'false'.


<SetAPIUrlLocalHost>https://localhost:49100/cities</SetAPIUrlLocalHost>
This is the custom url and port you want to have Telemerty push calls actually attempt to send http posts too. Valid values are any valid url, that said unless you shouldn't have to touch this unless for whatever reason you actually want to enable telemetry and send it to a specific url.

<TelemetryLevel>2097152</TelemetryLevel>
This is the stored sum of all the currently set options you set via the gui. If for some reason you want to set this manually 'or' the options together that you want from the following values.
DisableMachineInfo = 1,
DisableCustomContent = 2,
DisableStartSession = 4,
DisableEndSession = 8,
DisableMilestoneUnlock = 16,
DisableOnQuit = 32,
DisableOnStoreClick = 64,
DisableOnClicks = 128,
DisableSessionLoaded = 256,
DisableParadoxLogin =512,
DisableExceptionReporting = 1024,
DisableWorkshopAdPanel = 2048,
DisableOnAppStart = 4096,
SetAPIUrlLocalHost = 8192,
NoOpThePush = 16384,
EnableAllButLogToFileInstead = 32768,
EnableAll = 1048576, //Don't touch anything; full logging sent.
DisableAll = 2097152 //super shortcut flag.
The default is a single option flag of DisableAll.


<UseCustomLogFile>false</UseCustomLogFile>
This option allows you to tell the mod instead of printing it's normal log data to the standard CSL output_log.txt log file, to dump it's own logging information to a custom file. This really is only useful for debugging purposes or, if you don't want logs overwritten on ever game start. If debug logging is disabled it's probably pointless to use this. Default is disabled, however I recommend setting this to true if you are also going to enable telemetry logging.

<CustomLogFilePath>TelemetryControl_Log.txt</CustomLogFilePath>
The name and optional full path of the file you would like the mod to log it's messages to.
You either have to use a full path including file name, or if you just want the file created in your Cities Skylines installation folder root you can just type a file name. That said, the full path MUST EXIST for this to work, it will not create a folder for you, but it will create the file. So if you set it too 'c:\mydatafolder\mysubfolder\Somefilename.txt then make sure c:\mydatafolder\mysubfolder exists first, though the file does not and will be created if need be. The file is appended too over time, it is never overwritten.
Default when in use is the filename above, created in the root of the CSL install folder.


FAQ

Q: What happens if you delete your config?

Not to worry, if you lose it the mod will just create you a new one with default settings,
so long as it can write to the path. Though you'll need to check your setting again after that.
Even if it can't it will probably still function you'll just be forced to use default settings.

Last edited by knighthawkGP; 16 Nov, 2015 @ 9:23am
knighthawkGP  [developer] 16 Nov, 2015 @ 9:03am 
[Reserved for future use]
< >
Showing 1-2 of 2 comments
Per page: 1530 50