Personal Main Login/Register
The Site    
Main
Archive

Information
My Status

Multimedia
Movie Clips

Miscellaneous
Modern Iztok.Org
 
Call of Corsa: Assetto Ops - Race Control brings FPS combat to Assetto Corsa

I've been working on AssettoServer Race Control, a Windows app for setting up and running custom Assetto Corsa events. Cars, grids, bots, weather, live race monitoring... all fairly sensible things for a racing simulator. Then there's the other mode: choose a loadout, grab a rifle, and play a Call of Duty-style deathmatch. Inside Assetto Corsa. Yes, really.


AssettoServer Race Control Live Race tab showing the circuit map, race controls and selected bot telemetry
Race Control's Live Race view: circuit map, server controls and live bot telemetry. Click the screenshot for full size.


https://www.patreon.com/cw/bohloney

Here's a look at that side of the project, under the suitably ridiculous title Call of Corsa: Assetto Ops:



Watch Call of Corsa: Assetto Ops on YouTube


First, the Race Control part


The app is a native Windows editor and launcher built around my modified AssettoServer fork. It scans the cars, skins, tracks and layouts in an existing Assetto Corsa installation, then lets me build an event without having to hand-edit a collection of server configuration files.


On the racing side, that means selecting the circuit, building a grid, setting sessions and conditions, and configuring server-controlled race bots. Slots can be reserved for humans, dedicated to bots, or let a human take the place of a bot. There are saved event presets, reusable favourite grids, and controls for bot skill and aggression, including variation across the field.


Once an event is running, the live view shows the race on a map, with positions and telemetry coming from the server. There are start, stop and restart controls, plus an accelerated, network-free race simulation for testing bot behaviour. A separate browser dashboard provides live monitoring and guarded session controls; preset editing stays in the desktop app.


And then it becomes a shooter


Switching the event mode to FPS changes the setup into an arena and match editor. Racing and FPS keep separate presets, so experimenting with a firefight doesn't mean dismantling a carefully configured race.


The current FPS implementation includes:



  • Free-for-all and team deathmatch, with hardcore variants, time and kill limits, and optional headshot-only, infinite-sprint and no-health-regeneration rules.

  • Selectable loadouts: an assault rifle or MP5, a Desert Eagle or Colt 1911, and a frag or sticky grenade. The host controls which equipment is allowed, and players confirm their loadout before spawning.

  • On-foot movement and combat: aiming, sprinting, crouching, going prone, reloading and switching weapons, with keyboard/mouse and Xbox-controller input.

  • Bot opponents with configurable difficulty and aggression. They navigate the arena, pursue targets, strafe, shoot, reload and respawn, using the same authoritative movement and combat rules as human players.

  • A proper match HUD: health, ammunition, crosshair, kill feed, scoreboard and results. Completed matches roll into another round on the same arena after a countdown.


There are two presentation themes: the simpler Blocks look and a Modern theme with animated characters, first-person arms and weapon models. The visuals change; the underlying movement, hit detection and match rules don't.


How is this even running in Assetto Corsa?


Underneath the firefight, Assetto Corsa is still hosting an ordinary practice session. Each participant occupies a normal car slot, but the FPS client script hides and immobilises those carrier cars and takes over the camera, input and on-screen presentation through Custom Shaders Patch (CSP).


The custom server runs the actual shooter simulation: player movement, collision, shots, damage, ammunition, grenades, bots and scoring. In other words, it isn't just a gun model attached to a free camera. The server decides what happened, and the clients display the result.


Race Control's Live Match view also reads those FPS actors directly, rather than trying to track the hidden cars. That gives the host an arena map with player and bot positions, headings, health, kills and deaths.


Turning a map into an arena


The Prepare as FPS arena step reads a map's collision geometry and spawn transforms, then builds the navigation data needed for on-foot play. That includes clearance, slopes, stairs and traversal links. Prepared data is cached separately; preparing an arena doesn't rewrite the installed track.


This is also where a lot of the less glamorous work lives. A map that looks fine from a racing cockpit can have awkward collision gaps, decorative geometry or routes that make no sense for a walking player or bot. Arena preparation helps, but individual maps still need testing and tuning.


A development experiment, not a finished Call of Duty


The comparison is about the style of the matches, not a claim that this is a Call of Duty port or an official crossover. It's an experimental FPS mode in a racing simulator, and there is still compatibility, multiplayer and map-specific testing to do. Automatic round restarts are implemented; map rotation and travel between arenas are not.


It needs Assetto Corsa, a compatible CSP build and this project's matching modified server and FPS assets. Stock Assetto Corsa or an arbitrary upstream AssettoServer download won't provide this mode. The current client pack specifies CSP 0.3.0-preview520 or a newer compatible preview, and the host tooling is focused on local/LAN use.


I now have one tool for putting together a race grid and another set of controls in the same app for organising a firefight. Assetto Corsa probably wasn't expecting that second tab.

Comment | 2026-09-09 | views 4