Leaderboard
Popular Content
Showing content with the highest reputation on 6/22/2019 in Posts
-
2 points
-
2 pointsQuick market test: Thumbs up if you'd purchase this season pack.
-
2 pointsSteady on with the hyperbole man. There are a few calls that are too late, or have incorrect severity, but the vast majority of them are perfectly fine.
-
1 pointThe F1 series of games support the output of certain game data across UDP connections. This data can be used supply race information to external applications, or to drive certain hardware (e.g. motion platforms, force feedback steering wheels and LED devices). The following information summarise this data structures so that developers of supporting hardware or software are able to configure these to work correctly with the F1 game. If you cannot find the information that you require then please contact community@codemasters.com and a member of the dev team will respond to your query as soon as possible. Packet Information Packet Types Each packet can now carry different types of data rather than having one packet which contains everything. A header has been added to each packet as well so that versioning can be tracked and it will be easier for applications to check they are interpreting the incoming data in the correct way. Please note that all values are encoded using Little Endian format. All data is packed. The following data types are used in the structures: Type Description uint8 Unsigned 8-bit integer int8 Signed 8-bit integer uint16 Unsigned 16-bit integer int16 Signed 16-bit integer float Floating point (32-bit) uint64 Unsigned 64-bit integer Packet Header Each packet has the following header: struct PacketHeader { uint16 m_packetFormat; // 2019 uint8 m_gameMajorVersion; // Game major version - "X.00" uint8 m_gameMinorVersion; // Game minor version - "1.XX" uint8 m_packetVersion; // Version of this packet type, all start from 1 uint8 m_packetId; // Identifier for the packet type, see below uint64 m_sessionUID; // Unique identifier for the session float m_sessionTime; // Session timestamp uint m_frameIdentifier; // Identifier for the frame the data was retrieved on uint8 m_playerCarIndex; // Index of player's car in the array }; Packet IDs The packets IDs are as follows: Packet Name Value Description Motion 0 Contains all motion data for player’s car – only sent while player is in control Session 1 Data about the session – track, time left Lap Data 2 Data about all the lap times of cars in the session Event 3 Various notable events that happen during a session Participants 4 List of participants in the session, mostly relevant for multiplayer Car Setups 5 Packet detailing car setups for cars in the race Car Telemetry 6 Telemetry data for all cars Car Status 7 Status data for all cars such as damage Motion Packet The motion packet gives physics data for all the cars being driven. There is additional data for the car being driven with the goal of being able to drive a motion platform setup. N.B. For the normalised vectors below, to convert to float values divide by 32767.0f – 16-bit signed values are used to pack the data and on the assumption that direction values are always between -1.0f and 1.0f. Frequency: Rate as specified in menus Size: 1343 bytes Version: 1 struct CarMotionData { float m_worldPositionX; // World space X position float m_worldPositionY; // World space Y position float m_worldPositionZ; // World space Z position float m_worldVelocityX; // Velocity in world space X float m_worldVelocityY; // Velocity in world space Y float m_worldVelocityZ; // Velocity in world space Z int16 m_worldForwardDirX; // World space forward X direction (normalised) int16 m_worldForwardDirY; // World space forward Y direction (normalised) int16 m_worldForwardDirZ; // World space forward Z direction (normalised) int16 m_worldRightDirX; // World space right X direction (normalised) int16 m_worldRightDirY; // World space right Y direction (normalised) int16 m_worldRightDirZ; // World space right Z direction (normalised) float m_gForceLateral; // Lateral G-Force component float m_gForceLongitudinal; // Longitudinal G-Force component float m_gForceVertical; // Vertical G-Force component float m_yaw; // Yaw angle in radians float m_pitch; // Pitch angle in radians float m_roll; // Roll angle in radians }; struct PacketMotionData { PacketHeader m_header; // Header CarMotionData m_carMotionData[20]; // Data for all cars on track // Extra player car ONLY data float m_suspensionPosition[4]; // Note: All wheel arrays have the following order: float m_suspensionVelocity[4]; // RL, RR, FL, FR float m_suspensionAcceleration[4]; // RL, RR, FL, FR float m_wheelSpeed[4]; // Speed of each wheel float m_wheelSlip[4]; // Slip ratio for each wheel float m_localVelocityX; // Velocity in local space float m_localVelocityY; // Velocity in local space float m_localVelocityZ; // Velocity in local space float m_angularVelocityX; // Angular velocity x-component float m_angularVelocityY; // Angular velocity y-component float m_angularVelocityZ; // Angular velocity z-component float m_angularAccelerationX; // Angular velocity x-component float m_angularAccelerationY; // Angular velocity y-component float m_angularAccelerationZ; // Angular velocity z-component float m_frontWheelsAngle; // Current front wheels angle in radians }; Session Packet The session packet includes details about the current session in progress. Frequency: 2 per second Size: 149 bytes Version: 1 struct MarshalZone { float m_zoneStart; // Fraction (0..1) of way through the lap the marshal zone starts int8 m_zoneFlag; // -1 = invalid/unknown, 0 = none, 1 = green, 2 = blue, 3 = yellow, 4 = red }; struct PacketSessionData { PacketHeader m_header; // Header uint8 m_weather; // Weather - 0 = clear, 1 = light cloud, 2 = overcast // 3 = light rain, 4 = heavy rain, 5 = storm int8 m_trackTemperature; // Track temp. in degrees celsius int8 m_airTemperature; // Air temp. in degrees celsius uint8 m_totalLaps; // Total number of laps in this race uint16 m_trackLength; // Track length in metres uint8 m_sessionType; // 0 = unknown, 1 = P1, 2 = P2, 3 = P3, 4 = Short P // 5 = Q1, 6 = Q2, 7 = Q3, 8 = Short Q, 9 = OSQ // 10 = R, 11 = R2, 12 = Time Trial int8 m_trackId; // -1 for unknown, 0-21 for tracks, see appendix uint8 m_formula; // Formula, 0 = F1 Modern, 1 = F1 Classic, 2 = F2, // 3 = F1 Generic uint16 m_sessionTimeLeft; // Time left in session in seconds uint16 m_sessionDuration; // Session duration in seconds uint8 m_pitSpeedLimit; // Pit speed limit in kilometres per hour uint8 m_gamePaused; // Whether the game is paused uint8 m_isSpectating; // Whether the player is spectating uint8 m_spectatorCarIndex; // Index of the car being spectated uint8 m_sliProNativeSupport; // SLI Pro support, 0 = inactive, 1 = active uint8 m_numMarshalZones; // Number of marshal zones to follow MarshalZone m_marshalZones[21]; // List of marshal zones – max 21 uint8 m_safetyCarStatus; // 0 = no safety car, 1 = full safety car // 2 = virtual safety car uint8 m_networkGame; // 0 = offline, 1 = online }; Lap Data Packet The lap data packet gives details of all the cars in the session. Frequency: Rate as specified in menus Size: 843 bytes Version: 1 struct LapData { float m_lastLapTime; // Last lap time in seconds float m_currentLapTime; // Current time around the lap in seconds float m_bestLapTime; // Best lap time of the session in seconds float m_sector1Time; // Sector 1 time in seconds float m_sector2Time; // Sector 2 time in seconds float m_lapDistance; // Distance vehicle is around current lap in metres – could // be negative if line hasn’t been crossed yet float m_totalDistance; // Total distance travelled in session in metres – could // be negative if line hasn’t been crossed yet float m_safetyCarDelta; // Delta in seconds for safety car uint8 m_carPosition; // Car race position uint8 m_currentLapNum; // Current lap number uint8 m_pitStatus; // 0 = none, 1 = pitting, 2 = in pit area uint8 m_sector; // 0 = sector1, 1 = sector2, 2 = sector3 uint8 m_currentLapInvalid; // Current lap invalid - 0 = valid, 1 = invalid uint8 m_penalties; // Accumulated time penalties in seconds to be added uint8 m_gridPosition; // Grid position the vehicle started the race in uint8 m_driverStatus; // Status of driver - 0 = in garage, 1 = flying lap // 2 = in lap, 3 = out lap, 4 = on track uint8 m_resultStatus; // Result status - 0 = invalid, 1 = inactive, 2 = active // 3 = finished, 4 = disqualified, 5 = not classified // 6 = retired }; struct PacketLapData { PacketHeader m_header; // Header LapData m_lapData[20]; // Lap data for all cars on track }; Event Packet This packet gives details of events that happen during the course of a session. Frequency: When the event occurs Size: 32 bytes Version: 1 // The event details packet is different for each type of event. // Make sure only the correct type is interpreted. union EventDataDetails { struct { uint8 vehicleIdx; // Vehicle index of car achieving fastest lap float lapTime; // Lap time is in seconds } FastestLap; struct { uint8 vehicleIdx; // Vehicle index of car retiring } Retirement; struct { uint8 vehicleIdx; // Vehicle index of team mate } TeamMateInPits; struct { uint8 vehicleIdx; // Vehicle index of the race winner } RaceWinner; }; struct PacketEventData { PacketHeader m_header; // Header uint8 m_eventStringCode[4]; // Event string code, see below EventDataDetails m_eventDetails; // Event details - should be interpreted differently // for each type }; Event String Codes Event Code Description Session Started “SSTA” Sent when the session starts Session Ended “SEND” Sent when the session ends Fastest Lap “FTLP” When a driver achieves the fastest lap Retirement “RTMT” When a driver retires DRS enabled “DRSE” Race control have enabled DRS DRS disabled “DRSD” Race control have disabled DRS Team mate in pits “TMPT” Your team mate has entered the pits Chequered flag “CHQF” The chequered flag has been waved Race Winner “RCWN” The race winner is announced Participants Packet This is a list of participants in the race. If the vehicle is controlled by AI, then the name will be the driver name. If this is a multiplayer game, the names will be the Steam Id on PC, or the LAN name if appropriate. N.B. on Xbox One, the names will always be the driver name, on PS4 the name will be the LAN name if playing a LAN game, otherwise it will be the driver name. The array should be indexed by vehicle index. Frequency: Every 5 seconds Size: 1104 bytes Version: 1 struct ParticipantData { uint8 m_aiControlled; // Whether the vehicle is AI (1) or Human (0) controlled uint8 m_driverId; // Driver id - see appendix uint8 m_teamId; // Team id - see appendix uint8 m_raceNumber; // Race number of the car uint8 m_nationality; // Nationality of the driver char m_name[48]; // Name of participant in UTF-8 format – null terminated // Will be truncated with … (U+2026) if too long uint8 m_yourTelemetry; // The player's UDP setting, 0 = restricted, 1 = public }; struct PacketParticipantsData { PacketHeader m_header; // Header uint8 m_numActiveCars; // Number of active cars in the data – should match number of // cars on HUD ParticipantData m_participants[20]; }; Car Setups Packet This packet details the car setups for each vehicle in the session. Note that in multiplayer games, other player cars will appear as blank, you will only be able to see your car setup and AI cars. Frequency: 2 per second Size: 843 bytes Version: 1 struct CarSetupData { uint8 m_frontWing; // Front wing aero uint8 m_rearWing; // Rear wing aero uint8 m_onThrottle; // Differential adjustment on throttle (percentage) uint8 m_offThrottle; // Differential adjustment off throttle (percentage) float m_frontCamber; // Front camber angle (suspension geometry) float m_rearCamber; // Rear camber angle (suspension geometry) float m_frontToe; // Front toe angle (suspension geometry) float m_rearToe; // Rear toe angle (suspension geometry) uint8 m_frontSuspension; // Front suspension uint8 m_rearSuspension; // Rear suspension uint8 m_frontAntiRollBar; // Front anti-roll bar uint8 m_rearAntiRollBar; // Front anti-roll bar uint8 m_frontSuspensionHeight; // Front ride height uint8 m_rearSuspensionHeight; // Rear ride height uint8 m_brakePressure; // Brake pressure (percentage) uint8 m_brakeBias; // Brake bias (percentage) float m_frontTyrePressure; // Front tyre pressure (PSI) float m_rearTyrePressure; // Rear tyre pressure (PSI) uint8 m_ballast; // Ballast float m_fuelLoad; // Fuel load }; struct PacketCarSetupData { PacketHeader m_header; // Header CarSetupData m_carSetups[20]; }; Car Telemetry Packet This packet details telemetry for all the cars in the race. It details various values that would be recorded on the car such as speed, throttle application, DRS etc. Frequency: Rate as specified in menus Size: 1347 bytes Version: 1 struct CarTelemetryData { uint16 m_speed; // Speed of car in kilometres per hour float m_throttle; // Amount of throttle applied (0.0 to 1.0) float m_steer; // Steering (-1.0 (full lock left) to 1.0 (full lock right)) float m_brake; // Amount of brake applied (0.0 to 1.0) uint8 m_clutch; // Amount of clutch applied (0 to 100) int8 m_gear; // Gear selected (1-8, N=0, R=-1) uint16 m_engineRPM; // Engine RPM uint8 m_drs; // 0 = off, 1 = on uint8 m_revLightsPercent; // Rev lights indicator (percentage) uint16 m_brakesTemperature[4]; // Brakes temperature (celsius) uint16 m_tyresSurfaceTemperature[4]; // Tyres surface temperature (celsius) uint16 m_tyresInnerTemperature[4]; // Tyres inner temperature (celsius) uint16 m_engineTemperature; // Engine temperature (celsius) float m_tyresPressure[4]; // Tyres pressure (PSI) uint8 m_surfaceType[4]; // Driving surface, see appendices }; struct PacketCarTelemetryData { PacketHeader m_header; // Header CarTelemetryData m_carTelemetryData[20]; uint32 m_buttonStatus; // Bit flags specifying which buttons are being pressed // currently - see appendices }; Car Status Packet This packet details car statuses for all the cars in the race. It includes values such as the damage readings on the car. Frequency: Rate as specified in menus Size: 1143 bytes Version: 1 struct CarStatusData { uint8 m_tractionControl; // 0 (off) - 2 (high) uint8 m_antiLockBrakes; // 0 (off) - 1 (on) uint8 m_fuelMix; // Fuel mix - 0 = lean, 1 = standard, 2 = rich, 3 = max uint8 m_frontBrakeBias; // Front brake bias (percentage) uint8 m_pitLimiterStatus; // Pit limiter status - 0 = off, 1 = on float m_fuelInTank; // Current fuel mass float m_fuelCapacity; // Fuel capacity float m_fuelRemainingLaps; // Fuel remaining in terms of laps (value on MFD) uint16 m_maxRPM; // Cars max RPM, point of rev limiter uint16 m_idleRPM; // Cars idle RPM uint8 m_maxGears; // Maximum number of gears uint8 m_drsAllowed; // 0 = not allowed, 1 = allowed, -1 = unknown uint8 m_tyresWear[4]; // Tyre wear percentage uint8 m_actualTyreCompound; // F1 Modern - 16 = C5, 17 = C4, 18 = C3, 19 = C2, 20 = C1 // 7 = inter, 8 = wet // F1 Classic - 9 = dry, 10 = wet // F2 – 11 = super soft, 12 = soft, 13 = medium, 14 = hard // 15 = wet uint8 m_tyreVisualCompound; // F1 visual (can be different from actual compound) // 16 = soft, 17 = medium, 18 = hard, 7 = inter, 8 = wet // F1 Classic – same as above // F2 – same as above uint8 m_tyresDamage[4]; // Tyre damage (percentage) uint8 m_frontLeftWingDamage; // Front left wing damage (percentage) uint8 m_frontRightWingDamage; // Front right wing damage (percentage) uint8 m_rearWingDamage; // Rear wing damage (percentage) uint8 m_engineDamage; // Engine damage (percentage) uint8 m_gearBoxDamage; // Gear box damage (percentage) int8 m_vehicleFiaFlags; // -1 = invalid/unknown, 0 = none, 1 = green // 2 = blue, 3 = yellow, 4 = red float m_ersStoreEnergy; // ERS energy store in Joules uint8 m_ersDeployMode; // ERS deployment mode, 0 = none, 1 = low, 2 = medium // 3 = high, 4 = overtake, 5 = hotlap float m_ersHarvestedThisLapMGUK; // ERS energy harvested this lap by MGU-K float m_ersHarvestedThisLapMGUH; // ERS energy harvested this lap by MGU-H float m_ersDeployedThisLap; // ERS energy deployed this lap }; struct PacketCarStatusData { PacketHeader m_header; // Header CarStatusData m_carStatusData[20]; }; Restricted data (Your Telemetry setting) There is some data in the UDP that you may not want other players seeing if you are in a multiplayer game. This is controlled by the “Your Telemetry” setting in the Telemetry options. The options are: Restricted (Default) – other players viewing the UDP data will not see values for your car Public – all other players can see all the data for your car Note: You can always see the data for the car you are driving regardless of the setting. The following data items are set to zero if the player driving the car in question has their “Your Telemetry” set to “Restricted”: Car status packet m_fuelInTank m_fuelCapacity m_fuelMix m_fuelRemainingLaps m_frontBrakeBias m_frontLeftWingDamage m_frontRightWingDamage m_rearWingDamage m_engineDamage m_gearBoxDamage m_tyresWear (All four wheels) m_tyresDamage (All four wheels) m_ersDeployMode m_ersStoreEnergy m_ersDeployedThisLap m_ersHarvestedThisLapMGUK m_ersHarvestedThisLapMGUH
-
1 point
-
1 point
-
1 point
-
1 pointI’ve pretty much given up on doing the career because of this issue, for me this is the biggest problem with the game that desperately needs fixing.
-
1 pointgame is looking great to me. i love the new dynamic weather. also love how they've modeled wear for each individual tire. even in WRC7 the tire wear was much better done than in DR2.0. not sure why they got that guy to do the co-driver calls, it sounds terrible, but i do really like how the co-driver gives you much more information than the co-driver in DR2.0. i never really had any problems with the calls in WRC7 but in DR2.0 the calls are hugely problematic.
-
1 pointHi team, I have some feedback on the decision to leave DLC nefs encrypted. I’ve tried (somewhat unsuccessfully) to keep this to the point. I've made the key points bold to aid in sending feedback upwards. Firstly, I appreciate the open communication from @PJTierney on this. This is much, much better than keeping us in the dark. Thank you team. The main reason you’ve encrypted these files is based on the concern that if left unencrypted, players won’t purchase the DLC but will export the DLC models and replace the model of an available car. Some perspective: The .nefs validation system you’ve built is already checking for .nefs file modification. The impact is, if people were to replace models in an available car, their career saves will be disabled and times will not be submitted online. The community has already shown from the launches of DiRT 4 and DR2.0 that with this degradation in experience, very few people will risk or bother going through the effort of installing custom liveries and models. People would need to go through the effort of installing custom software, extracting the appropriate model files, and replacing these within the nefs of an available car. This process is not trivial. They would then get the visual benefit - but that’s it - and the replaced car model is cannibalised. My strong suggestion is that for the amount of effort involved in the modding process, and for the quality of in-game experience gained - people won’t bother. The few that do are probably going to pirate or never pay for DLC in the first place. And in the meantime your paying, dedicated and engaged community get frustrated and disappointed. What continuing to encrypt DLC cars means for us: Frustration and disappointment. Less engagement with the game. Less motivation to purchase future DLC. Allowing the community to create liveries may seem trivial - but it is a crucial part of helping create an engaged community that will continue to invest time in the game. Will I use the Porsche 911 SC RS? I’ll try it out and move on. But if I could create a livery for it, I would without a doubt spend around 24 hours of my own time creating a custom livery - then be motivated to spend about as much time in game driving it. In DR1 my favourite car was the 2007 Focus in the 2000cc class. I haven’t touched it in DR2 because the liveries are rubbish. I won’t use the 2000cc class at all as part of Clubs because I can't use a livery which immerses me in the experience. It’s a massive missed opportunity. The only thing that is making me try the other available R2 cars at the moment is the fact I can create a livery that helps engage me and my team in the experience of competing with others as part of a community organised championship. Without both of these things I would be sticking to my Fiesta and running daily events until I get bored. Custom liveries keep things fresh and engaging - keeping me in the game longer. I’m much less likely to purchase additional DLC cars with this encryption in place. I’m talking even if the 206 drops - the livery will need to be hella good to make me consider purchasing - cause otherwise I simply won't use it. Without this nefs encryption imma throw you money. If you’re not going to unlock DLC nefs: At the very least please consider enabling the folder method for DLC cars so we can use liveries for models that existed in previous DiRT titles. Better, please consider also making DLC car textures available to the community somehow. This way the few people you're concerned about still can't rip you off, and there’s even more incentive to purchase your DLC because we’ll be creating a wealth of amazing livery content. If you won’t do either of these… You need to invest in better liveries for DLC cars, or in comprehensive livery editing tools. With love and respect, the livery options we have in DR2.0 just aren't good enough. What will these cost you to implement? What is the cost of an increasingly disillusioned community? Thanks team. xoxo
-
1 pointWRC2 runner up in Rally Portugal, Emil Bergkvist together with Patrik Barth in the M-SPORT Fiesta R5 they won as prize for becoming Junior champions last year. https://www.racedepartment.com/downloads/ford-fiesta-r5-emil-bergkvist.27306/
-
1 pointIt will be hard driving the Focus 2001 without a Martini livery for sure. If only you guys can find a way to read texture files separately.
-
1 point
-
1 pointHey folks - I've uploaded the base 2019 JWRC livery, adapted for the Mk7 Fiesta R2: https://www.racedepartment.com/downloads/2019-junior-wrc-livery-template.27294/ The intention is for it to be used to help other modders create other JWRC liveries. Or can just be used in game as is 🤙
-
1 pointyep, unfortunately no F1 career info at all. I hope the F2 thing isn't the only thing they added in this 2 year development cycle. If so, that's really sad.
-
1 pointI can only agree that this must be the worst pre release ever. It's almost like they are hiding the career part of the game. F2 is only an intro to the F1 career and we haven't seen anything of the F1 career almost like they changed nothing at all and do not want us to know. I'm buying an F1 game not a F2 game so more info on the F1 part would be appreciated. I still haven't preordererd
-
1 pointCamera view and FOV looks perfect. Graphically very nice as well but 30fps on consoles means im out unless they can hit 60 on Pro & X
-
1 pointSome dashboards are improved and something tweaked with lightness, you can notice those also with standard PS4 version. Is there native 4k textures for PS4 Pro after patch or is it still 1080p?
-
1 pointIf you play any Xbox One X game that can display at 4K, it'll supersample if your screen is of a lower resolution. https://news.xbox.com/en-us/2017/11/03/xbox-one-x-explaining-4k-hdr-supersampling/
-
1 pointPre Patched Patched Dial Zoomed in prepatched Dial Zoomed in Patched Remember this forum doesnt show a full size screen it compresses it and makes it smaller so in game it's an even bigger difference.
-
1 pointI had the exact same thing last night, i really got the impression everything was sharper/less blurry/more crisp (also at argentina stage). Weird thing is, nothing about this is mentioned in patchnotes, so is it indeed placebo? maybe some of the devs can enlighten us on this? Problem is , you cant compare it.. only to recorded videos or screenshots, and those (on ps4 standard) were awfull before.. so tonight im going to try and replicate some of my earlier recorded screenshots/videos and compare.
-
1 pointI'm very happy for you guys on the PS4, great to hear when people get the fix they have been hoping for, and can enter rally Nirvana! 🙂 As I bought the game on both the PS4 Pro and the Xbox One X (to support Codies however I can), I can confirm the game is now sharper on the PS4 Pro than it is on the Xbox 1 X. Screenshots to come. I think the difference is they have dialled back some filtering or depth of field effect on purpose, after hearing PS4 player's complaints. It's a matter of taste, sometimes the Xbox 1 X looks a touch nicer as the graphics are smoothed out, but other times it's still too soft-focus looking. Personally, somewhere in-between on the Xbox would be perfect for me. If Codies can fix the heavy rain under headlights at night effect (the big white rain-bolts), then graphically I think we're pretty good across the consoles.
-
0 pointsHello everyone, just thought I’d drop in a note regarding the DLC car files and the inability to edit liveries. These cars are encrypted for a number of reasons, the main one being that if left unencrypted, players without the DLC content could freely access them. In order to edit the livery files of these cars and produce livery mods, the car files are required to be unencrypted, however this is not something we are willing to do I’m afraid. Sorry to be the bearer of bad news, but I felt it best we give you a heads up as to why you can’t create livery mods for these cars.
-
0 points
-
0 pointsWorst pre-release ever or worst fans ever ? You're just complaining all the time, it's so tiring ! I haven't read a single time " Waw, amazing, there are F2, new stories in career, drivers transfers, new graphics...". It's amazing to have a F1 game like this but you're never never never happy. It's sooo sad (for you) ! I'm not saying Codemasters F1 games are perfect but that's too much.