Magic Data Discussion

Posted by TomMK 
Re: Magic Data Tutorial
Date: September 27, 2013 11:04PM
Posted by: salvasirignano
> Maybe the tire-wear limit is also defined by some
> (yet unidentified) parameter in the magic data.
> Can someone please confirm if cc shuffler affects
> the player car's laptimes? Then, what is the
> interpretation of the tire-wear value in the magic
> data? Is it just to finetune the player car's tire
> wear?

Yes, CC shuffler most definitely affects the player, moreso than the AI.
It creates a kind of fuel weight effect. For a track I built, I set cc shuffler to 1000, tyre wear to 12000
For the player the laptimes over a stint went from 1:09 to 1:07, for the AI 1:08 to 1:07
The low tyre wear value (which only affects the player!) allows the tyre wear to be low enough to allow the times to get quicker as opposed to slower.
Re: Magic Data Tutorial
Date: September 28, 2013 01:04AM
Posted by: TheFueleffect
That is interesting, but does this imply that the player's car is less susceptible to tire wear in this situation? Does it change if you increase "tire wear" in the magic data?

My findings are:
In the original game cc shuffler is highest for tracks mostly consisting of low-speed corners, like Monaco, Canada and Italy, while the value is lower for tracks like Belgium, Japan, Great-Britain and Malaysia (accidentally all starting with an "s"...), which do have a lot of high-speed corners. So, if "cc shuffler" is really overall tire wear, it seems that the game developers have tried to create the same tire drop-off on every track (possibly because the differences in grip levels between the tire compounds are fixed too).

On the other hand, "tire wear" in the magic data is weakly related to track grip (more grip is more tire wear), which has some logic in it. The common finding is that the behavior of the car is not drastically affected by changes in this value, so this is not really important.

The hot-seat mode is a great way to investigate race performances: 1) all cars are equal and 2) there is no tire wear, so the performance only depends on fuel load. The laptimes reveal that one lap of fuel costs about 0.05 seconds per lap on Silverstone (60-lap race), which means that laptimes will improve by about one second over an average stint due to the loss of weight, but not much more (at most two seconds for a very long 40-lap stint). So even without tire wear laptimes do not seem to improve very much. By the way, the cc shuffler value for Silverstone is "only" 2888, one of the lowest values in the game, so the effect may be even less for other tracks.
I hope that reducing cc shuffler will increase the "weight penalty".
Re: Magic Data Tutorial
Date: September 28, 2013 01:17PM
Posted by: salvasirignano
TheFueleffect Wrote:
-------------------------------------------------------
> That is interesting, but does this imply that the
> player's car is less susceptible to tire wear in
> this situation? Does it change if you increase
> "tire wear" in the magic data?
>

Yes, the higher the number, the higher the tyre wear. So by decreasing the tyre wear entry from say 16000 to 12000, and using the cc shuffler "fuel weight" effect, one can make the times decrease rather than increase over a stint. In my experience anyway ;)



Edited 1 time(s). Last edit at 09/28/2013 01:17PM by salvasirignano.
Re: Magic Data Tutorial
Date: September 28, 2013 01:25PM
Posted by: TomMK
Is that definitely correct that there's no tyre wear in hot-seat mode? Seems strange.

Anyway, on the topic of tyre wear, I'm making a new CC Line and Magic Data for the Marina Bay / Singapore circuit and I'm experimenting with higher tyre wear to simulate the 2013 Pirelli tyres. What salvasirignano says above is pertinent:

Quote
salvasirignano
The low tyre wear value allows the tyre wear to be low enough to allow the times to get quicker as opposed to slower.

In 2001 (original GP4 year) a driver gained the advantage by pitting later than his rival because the advantage of lower fuel was greater than the penalty of worn tyres (tyre wear was lower during the Bridgestone era), so drivers were quicker at the end of the stint, and slower after pitting for fuel. Probably the best example of this from 2001 is Ralf Schumacher overtaking Michael by staying out longer at the Canadian GP.



In 2013, with higher-wearing Pirelli tyres and no refueling, we have a scenario where drivers go faster after a pitstop, so a driver now gains the advantage by pitting earlier than his rival (known as the "undercut" ).

Now, we still can't simulate no-refueling in GP4, so in order to create the same effect, we actually have to set tyre wear to an even higher level than the reality of 2013 to compensate (because we want cars to go faster after a pitstop, even though they have been refueled). This picture hopefully illustrates the point:



If we look at some of the original 2001 Magic Data, we find:

Average Player tyre wear = 15046 (desc 50)
Average AI car tyre wear =  3585 (desc 72 / "cc shuffler" )

Average Player fuel consump. = 17705 (desc 70)
Average AI car fual consump. = 16413 (desc 71)

To simulate 2013 conditions, we want to increase tyre wear, and possibly reduce fuel consumption to simulate the modern V8 versus the V10s of 2001, to the level where drivers get slower during a stint, instead of faster. So far, with Singapore, I have only increased tyre wear, but I will work on the fuel consumption next:

My Singapore magic data contains these values:
Player tyre wear = 20100
AI car tyre wear = 5200

Player fuel consumption = 17700
AI car fuel consumption = 16400

As you can see I've used pretty much exactly the average original fuel consumption values, but I think I might reduce this a bit (see link above), meaning I wouldn't have to use quite this level of tyre wear to get the same effect.

If anyone is interested in the Singapore CC line / Magic Data combo just send me a PM, I'm happy to share it now, but it's still a work-in-progress and not the final version I will release in future.

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel



Edited 4 time(s). Last edit at 09/28/2013 01:54PM by TomMK.
Re: Magic Data Tutorial
Date: September 28, 2013 02:43PM
Posted by: TheFueleffect
If you select all 22 drivers, there will be no tire wear (at least when the computer is controlling "your" car, which is most of the time).

In order to have realistic strategies, tire wear and fuel consumption should also be realistic. Indeed, the original game simulates the Pirelli tire wear well. The graphs are right (only "speed" should be "laptime";) and this shows why the original GP4 is not realistic, as the AI are forced to drive way too long with worn out tires.

Nowadays, F1 cars consume about 150 kg of fuel during the race. Probably fuel consumption was slightly higher back in 2001 (somewhat more engine power and of course two additional cylinders). However, according to the magic data, fuel consumption is about 140 to 150 kg per race, which is probably an underestimation. So perhaps the fuel figures should be raised by 10 percent in the magic data.

However, there may be some way to simulate the refueling ban:
1) lower the "fuel" and "fuel consumption" in the magic data substantially (and when necessary, decrease pitstop duration)
2) increase the AI braking aggressiveness (or something like that) so the track becomes significantly faster during the session (I hope this affects the race too)
Re: Magic Data Tutorial
Date: September 29, 2013 01:31AM
Posted by: TomMK
Quote
The Fueleffect
However, according to the magic data, fuel consumption is about 140 to 150 kg per race

How did you calculate this?

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel
Re: Magic Data Tutorial
Date: September 29, 2013 01:13PM
Posted by: TheFueleffect
Fuel value in the magic data divided by 2979 times number of laps.

For example:
Hockenheim - Fuel = 9205 = 3.09 kg per lap, so 3.09 x 45 laps = 139 kg per race.
A1 Ring (or Red Bull Ring) - Fuel = 6849 = 2.30 kg per lap, so 2.30 x 71 laps = 163 kg per race.

In general, fuel consumption is lower for high-speed tracks, which is quite intuitive I think. However, the fuel-consumption parameters (they are different for player and AI) in the magic data vary from track to track, which also explains some difference in overall fuel consumption. These differences might be due to altitude (less air = less power = less consumption?), but as far as I can see there is no correlation between track altitude and the fuel-consumption parameter(s). So maybe there is some room for improvement in the track data. :)
Re: Magic Data Tutorial
Date: September 30, 2013 01:46AM
Posted by: TomMK
Quote
TheFueleffect
Fuel value in the magic data divided by 2979 times number of laps.

Where does that value of 2979 come from?

Quote
TheFueleffect
Hockenheim - Fuel = 9205 = 3.09 kg per lap, so 3.09 x 45 laps = 139 kg per race.
A1 Ring (or Red Bull Ring) - Fuel = 6849 = 2.30 kg per lap, so 2.30 x 71 laps = 163 kg per race.

In general, fuel consumption is lower for high-speed tracks

Doesn't seem right (although as you say the original 2001 Magic Data is not perfect). Shouldn't cars use more fuel at faster circuits due to the higher RPM? So the total race fuel mass should be greatest at Hockenheim, Spa and Monza.

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel
Re: Magic Data Tutorial
Date: September 30, 2013 12:42PM
Posted by: TheFueleffect
Quote

Where does that value of 2979 come from?

It was written in another topic.

Quote
Supersonic
"fuel???" is given in "kg*2979".

Quote

Doesn't seem right (although as you say the original 2001 Magic Data is not perfect). Shouldn't cars use more fuel at faster circuits due to the higher RPM? So the total race fuel mass should be greatest at Hockenheim, Spa and Monza.

No. While there may be some difference in revs, the most important difference is speed (higher speed = shorter race-duration). In fact, acceleration is quite fuel consuming (full throttle at low speeds), while travelling at top speed is relatively fuel efficient. So the magic data is probably right. (In the original game the cars are usually not running out of fuel, so the fuel values seem right in the magic data, so the differences in fuel consumption are due to differences in track characteristics.)
Re: Magic Data Tutorial
Date: October 02, 2013 12:54PM
Posted by: TomMK
Ok that's understood. The current V8s are supposed to require approximately 160kg of fuel for a race so if that constant of 2979 is close to being correct then the original magic data still applies pretty well to the reality of modern 2013 F1. Probably today's lack of refueling (which would cause higher fuel consumption) is offset by the more fuel-efficient V8s, which causes the cars to need about the same amount of fuel as in 2001.

For next year we will need to reduce the amount of fuel required to 100kg per race which will be quite a change...

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel
Re: Magic Data Tutorial
Date: October 03, 2013 12:04AM
Posted by: TheFueleffect
Quote
TomMK
Ok that's understood. The current V8s are supposed to require approximately 160kg of fuel for a race so if that constant of 2979 is close to being correct then the original magic data still applies pretty well to the reality of modern 2013 F1. Probably today's lack of refueling (which would cause higher fuel consumption) is offset by the more fuel-efficient V8s, which causes the cars to need about the same amount of fuel as in 2001.

Nice article, good work! The fuel consumption appears to be 160 kg per race, which is even more than I thought. So the magic data indeed applies reasonably well to the modern F1. Still I think fuel consumption was higher in 2001 than it is now: cars are usually slightly "underfuelled" in the race nowadays because of the significant weight-penalty - drivers try to save some fuel during the race. I don't know if heavier cars really do consume more. Of course it takes more effort to accelerate a heavy car, but fuel consumption may be reduced by the lower cornering-speeds. In fact, in some occasions drivers nearly ran out of fuel because they were delayed less by traffic than expected (the best example I can remember was Hamilton in the 2011 UK Grand Prix), so driving slowly may indeed reduce fuel consumption significantly. Probably KERS and DRS reduce fuel consumption too. Having said that, modern F1 cars generate more downforce, which is likely to increase fuel consumption.

In the end, it is hard to estimate the exact fuel-consumption in the 2001 season, but given the larger (less efficient) and stronger engines (850 HP against maybe about 800 today), I think fuel consumption should be around 170-175 kg (about 10% higher than today and 15% higher than the magic data) per race on average.

Quote
TomMK
For next year we will need to reduce the amount of fuel required to 100kg per race which will be quite a change...

Yes, next year must be a disaster for the drivers. They probably have to save fuel all the time. :( Very difficult to simulate in the game, though.
Re: Magic Data Tutorial
Date: October 03, 2013 01:06AM
Posted by: TomMK
Yes, it's almost impossible to simulate the expected 2014 fuel-saving conditions, because GP4 AI drivers don't ever stop pushing at 100%, no matter what the circumstance.

The only thing we could do is tweak the fuel such that the drivers nearly run out at the end of a stint. So instead of using exactly 1.0 laps of fuel per lap and keeping the 2 lap fuel buffer, we might deliberately set the fuel consumption a bit too high, so that it's closer to 0.0 laps of fuel left after a stint.

For the player we can certainly simulate it in this way. But then it's unfair because the player would have to go slowly to save fuel when the AI would not do the same thing.

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel



Edited 1 time(s). Last edit at 10/03/2013 01:24AM by TomMK.
Re: Magic Data Tutorial
Date: October 03, 2013 01:37AM
Posted by: Atticus.
Hi guys,

I used to visit this thread and contributed some minor things regarding pit stall and garage positions a few pages back.

Now I accidentaly came across an old post from b-tone alias Tony from an older thread where he cites belini. belini offered some insight into the final eight parameters we still have no clue about. I quote the post.

Quote

this is what I have from the great belini. Theres some missing, but more than on the default list. TSM also has a lot listed but the .tmd format is a bit different to the .md3
15 ; FW AI DRY
14 ; RW
29 ; 1st
34 ; 2nd
39 ; 3rd
45 ; 4th
51 ; 5th
56 ; 6th
16 ; FW AI WET
16 ; RW
27 ; 1st
32 ; 2nd
37 ; 3rd
42 ; 4th
48 ; 5th
54 ; 6th
14 ; FW PLAYER DRY
14 ; RW
29 ; 1st
34 ; 2nd
39 ; 3rd
45 ; 4th
51 ; 5th
56 ; 6th
5688 ; DRY BRAKE BALANCE
14 ; FW PLAYER WET
16 ; RW
27 ; 1st
32 ; 2nd
37 ; 3rd
42 ; 4th
48 ; 5th
54 ; 6th
5738 ; WET BRAKE BALANCE
54 ; TYRE 1
53 ; TYRE 2
100 ; TYRE SELECT 0=HARD
16384 ;
16384 ;
16384 ;
16384 ;
15882 ; TRACK GRIP
16384 ;
16384 ;
24 ; DOWNFORCE
1018 ; RIDE HEIGHT
16975 ; LINKED TO REVS AND 2 DESCS ABOVE
8152 ; FUEL
384 ;
15453 ; PLAYER TYRE WEAR
64768 ; AI GRIP
512 ; LINKED TO AI GRIP
500 ; ACE REVS (500)
514 ; ACE GRIP
500 ; PR
498 ; PG
490 ; SPR
486 ; SPG
473 ; AR
477 ; AG
455 ; RR
465 ; RG
512 ; RANDOM MIN (512)
2048 ; RANDOM MAX (2048)
47 ; AI ERROR
64 ; SPIN RECOVER RANGE (64)
2 ; PIT IN
19 ; PIT OUT
20480 ; PRE-PIT ENTRY SPEED
17515 ; PLAYER FUEL 100%
16275 ; AI FUEL
3343 ; AI RACE PERF
128 ; 2x2
86890 ; LAP TIME
0 ; TIME ADJUST
15400 ; A1 TYRES
21000 ; A1 TYRES
25 ; WEATHER %
6 ; PIT DATA
6 ; PIT DATA

256 ; AI RACE GRIP
20000 ; A1 TYRES
136 ; MAYBE PLAYER RELATED

10000 ; BLACK FLAG PENALTY
2048 ; BLACK FLAG 1024=80k
240 ; AI WET?
115 ; AI WET?
110 ; AI WET?
13 ; AI WET?

0 ; BOX POSITION
1814 ;
896 ; BOX SHADE
0 ; BOX ANGLE
0 ; PIT SIDE IN
0 ;
16384 ; DW
16384 ; DW
16384 ; DW
16384 ; DW
16384 ; DW
16384 ; DW
100 ; PIT GROUP 1 %
33 ; STOP 1
8 ; PIT WINDOW 1
0 ;
0 ;
0 ;
0 ;
0 ;
0 ; PIT GROUP 2 %
0 ; STOP 1
0 ; PIT WINDOW 1
0 ; STOP 2
0 ; PIT WINDOW 2
0 ;
0 ;
0 ;
0 ; PIT GROUP 3 %
0 ; STOP 1
0 ; PIT WINDOW 1
0 ; STOP 2
0 ; PIT WINDOW 2
0 ; STOP 3
0 ; PIT WINDOW 3
0 ;
744 ; SUSPENSION
0 ; LOOSEWHEEL
0 ; PUNCTURE
1489 ; ENGINE
0 ; TRANSMISSION
0 ; WATER/OIL LEAK
744 ; THROTTLE/BRAKE
744 ; ELECTRICS
16384 ;
16384 ;
16384 ;
16384 ;
19968 ; BUMP FACTOR
13 ; BUMP HEIGHT

____
Tony

I highlighted what we are talking about here. My own CMagic 'guide file looks like this.

[descriptions]
desc1=fw AI dry
desc2=rw
desc3=1st
desc4=2nd
desc5=3rd
desc6=4th
desc7=5th
desc8=6th
desc9=fw AI wet
desc10=rw
desc11=1st
desc12=2nd
desc13=3rd
desc14=4th
desc15=5th
desc16=6th
desc17=fw player dry
desc18=rw
desc19=1st
desc20=2nd
desc21=3rd
desc22=4th
desc23=5th
desc24=6th
desc25=brake bias dry
desc26=fw player wet
desc27=rw
desc28=1st
desc29=2nd
desc30=3rd
desc31=4th
desc32=5th
desc33=6th
desc34=brake bias wet
desc35=soft tyre (52-55, higher, softer)
desc36=hard tyre (52-55, higher, softer)
desc37=>= 50 for tyretype 1, else 0
desc38=
desc39=
desc40=
desc41=
desc42=track grip
desc43=
desc44=
desc45=downforce
desc46=ride height
desc47=air pressure
desc48=fuel (for 1.0 lap)
desc49=slipstream (not very effective)
desc50=?tyre wear player
desc51=AI aggressiveness in attacking corners (32768-65536 higher, more - 0-32768 higher, more, /l/)
desc52=AI aggressiveness finetune
desc53=cc power factor ace
desc54=cc grip factor ace
desc55=cc power factor pro
desc56=cc grip factor pro
desc57=cc power factor semi-pro
desc58=cc grip factor semi-pro
desc59=cc power factor amateur
desc60=cc grip factor amateur
desc61=cc power factor rookie
desc62=cc grip factor rookie
desc63=random perf range min
desc64=random perf range max
desc65=nr of AI errors
desc66=nr of sectors checked by AI after spin
desc67=sectors to pit in begin
desc68=sectors to pit in end
desc69=pre pit speed limit
desc70=fuel consumption player
desc71=fuel consumption AI
desc72=?tyre wear AI
desc73=nr of segments before cars break rail-line at the starts
desc74=poletime (e. g. 70800 equals 1:10.800)
desc75=poletime finetune (+/-1000 equals +/- 1.0)
desc76=change for drys/wets timing AI (higher, sooner)
desc77=change for drys/wets timing AI finetune
desc78=rain chance
desc79=????? - segment nr (start of some range) pit data
desc80=????? - segment nr (end of some range) pit data

desc81=AI race grip
desc82=????? - unk (dw) AI tyres
desc83=????? - unk (dw) maybe player related

desc84=black flag penalty
desc85=black flag (1024=80kph)
desc86=????? - unk (dw) AI wet?
desc87=????? - unk (dw) AI wet?
desc88=????? - new (dw) AI wet?
desc89=????? - new (dw) AI wet?

desc90='handbrake' (at -312)
desc91=garage pos depth player
desc92=garage pos depth AI
desc93=orientation in garage
desc94=pit stall depth
desc95=pit stall depth finetune
desc96=
desc97=
desc98=
desc99=
desc100=
desc101=
desc102=pitstop group 1 %
desc103=stop 1
desc104=pit window 1
desc105=
desc106=
desc107=
desc108=
desc109=
desc110=pitstop group 2 %
desc111=stop 1
desc112=pit window 1
desc113=stop 2
desc114=pit window 2
desc115=
desc116=
desc117=
desc118=pitstop group 3 %
desc119=stop 1
desc120=pit window 1
desc121=stop 2
desc122=pit window 2
desc123=stop 3
desc124=pit window 3
desc125=
desc126=failure chance: suspension
desc127=failure chance: loosewheel
desc128=failure chance: puncture
desc129=failure chance: engine
desc130=failure chance: transmission
desc131=failure chance: oilleak/waterleak
desc132=failure chance: throttle/brake
desc133=failure chance: electrics
desc134=
desc135=
desc136=
desc137=
desc138=bump factor
desc139=bump height

Once again, I highlighted the relevant rows, besides also including the additional info we got from belini.

Now I do not have time for testing these values (will have), but go ahead if interested. Modify them, use extreme values, etc. At least now we have some clues as to what to look for during the in-game testing.

Cheers. :-)
Re: Magic Data Tutorial
Date: October 03, 2013 09:47AM
Posted by: TomMK
Nice one Atticus, that may be useful thanks. It's frustrating not being able to easily figure out these last few values!!

=====================================================


Intel NUC 8i3, 8GB RAM, MS Sidewinder Wheel
Re: Magic Data Tutorial
Date: October 03, 2013 08:37PM
Posted by: TheFueleffect
Very nice indeed, but what exactly do these variables mean?

Quote
Atticus.
6 ; PIT DATA
6 ; PIT DATA
256 ; AI RACE GRIP
20000 ; A1 TYRES
136 ; MAYBE PLAYER RELATED

The pit data is 6 for all tracks. A1 (AI?) tyres is as low as 7000 for Monaco, but as high as 20000 for Australia and Europe. The player-related part is probably somewhat correlated to this value, but still I fail to see a pattern.
Re: Magic Data Tutorial
Date: October 07, 2013 06:07PM
Posted by: Atticus.
I don't know.

I tried to edit these

6 ; segment nr (start of some range) pit data
6 ; segment nr (end of some range) pit data

to be 300-300, but I saw no change in pitting behaviour. As it reads 6-6 for all tracks and it supposed to be a physical range between two segments supposedly related to pitting, I think the fact that it's 6-6 for all tracks means that the programmers deliberately decreased the length of this range to 0, whatever it was. It ends at the same point where it starts.

So I figured I'd try a 1-300, but still no change.

My best bet was that it regulates where on a lap the AI triggers the pit in signal when it reaches a given fuel level at the end of stints. 6-6 would have made it almost exactly after beginning the lap in question (remember, it's 6-6 without a window, so it's an exact nr of segment every time), but no, this is not it. I tried to increase it to 600-600 and 50-100, the latter to open up the range.

(I don't even know the difference between sectors and segments. We work with sectors in GP4 Builder, but I only see segments specified for an action in the magic data.)

EDIT: It might also be tha the thing this range referred to was taken out of the game, or not included at all (e. g. SC-related things). We know Geoff & Co. was in a hurry to finish the game. But then how would belini know it is related to pit data? More questions than answers...



Edited 3 time(s). Last edit at 10/07/2013 06:37PM by Atticus..
Re: Magic Data Tutorial
Date: October 07, 2013 06:22PM
Posted by: Lo2k
just to let you know,

short version :
sector = segment

long version:
In past GPgames, segment could have different length. This length was always a multiple of 16feet. So I decided to call this smallest unit 16feet long a sector.
Thus for GP3 and before games, 1 segment could be one or several sector long.
But in GP4 all segments are 16feet long (length is always equal to 1) so in GP4Builder, it's always in sectors.
So for GP4 1 segment = 1sector





Edited 1 time(s). Last edit at 10/07/2013 06:27PM by Lo2k.
Re: Magic Data Tutorial
Date: October 07, 2013 06:37PM
Posted by: Atticus.
@Lo2k: Thanks.

So the above magic lines do refer to a specific sector (sector 6), either on the track or in the pitlane.



Edited 1 time(s). Last edit at 10/07/2013 06:40PM by Atticus..
Re: Magic Data Tutorial
Date: October 07, 2013 06:43PM
Posted by: Atticus.
Oh, and I also tried lowering the

20000 ; unk (dw) AI tyres

value to 0 for Melbourne and tried to spot something unusual, but to no avail. :(
Re: Magic Data Tutorial
Date: October 07, 2013 08:46PM
Posted by: Lo2k
@Atticus : It might rather be a specific sector count/range. It could mean something like : "engage auto-pilot 6 sectors after the start pit lane flag" or "slow-down for 6 sectors before the parking place" (just examples)
I doubt it enables anything at pit sector 6, if you follow me ;)





Edited 1 time(s). Last edit at 10/07/2013 08:48PM by Lo2k.
Sorry, only registered users may post in this forum.

Click here to login

Maintainer: mortal, stephan | Design: stephan, Lo2k | Moderatoren: mortal, TomMK, Noog, stephan | Downloads: Lo2k | Supported by: Atlassian Experts Berlin | Forum Rules | Policy