Skip to content
Pixel Lusitano PTEN

Trust Factor Zero

An FPS where cheating is part of the rules.

  • PC
  • Coming soon
  • Unity 6
  • C#
  • Mirror
A match on the Warehouse map, with enemies highlighted through the walls

A satirical online shooter where everyone gets ZeroWare, a cheat menu built into the game. The host decides whether the room is Legit, with weak cheats, or Rage, where anything goes. Teams are Smurfs against Tryhards, and when you die you see “BANNED”.

Under the satire there's a real FPS: fast movement with bunny hop and air-strafe, three weapons with their own recoil and spread, and a network where the host decides everything, at 64 ticks per second.

How to play

  • Matches over Steam: create a room, find one or invite friends. There are no dedicated servers: one of the players is the host.
  • Deathmatch (first to 20 kills wins) and Team Deathmatch, Smurfs against Tryhards (first team to 40), or whoever has the most after 10 minutes.
  • Three weapons: an automatic Rifle, a Pistol and a Sniper with a scope, each with its own recoil pattern and spread.
  • Up to 9 bots, on Easy, Normal or Hard, who play by the same rules as you.

Legit and Rage rooms

Whoever creates the room picks the rules, and every player in the match plays by the same ones.

  • Legit: basic cheats with fixed values, just on or off (soft aimbot, triggerbot and ESP).
  • Rage: anything goes and almost everything can be tuned: aimbot with silent aim and auto-fire, anti-aim, auto-bhop, auto-strafe, fake lag, backtrack, resolver, full ESP, third person and more.
  • ZeroWare opens with the Insert key, and configs can be exported and imported as text.

Competitive and ranks

  • 2v2 and 5v5 rooms, always Rage, Smurfs against Tryhards and no bots.
  • 18 ranks, from “Innocent Bronze I” to “Trust Factor Zero”, with 100 RP each; your first 5 matches count double.
  • “Find match” puts together players no more than 1 rank apart.
  • Ranks are kept on a server and only change when most of the match's players, from both teams, send the same result.

Progression and shop

  • XP and TF Coins for kills, headshots, matches and wins; levels 1 to 50 and prestige.
  • ZeroWare shop: in Rage rooms, the strongest features can be rented with TF Coins or kept forever with a TF Perma Coin.
  • Three missions a day and 9 achievements, from “First Blood” to “Nobody Believes It's Skill”.
  • A profile with your level, coins and stats: kills, times banned, K/D, headshots, matches and wins.

Images

  • Image 1 from Trust Factor Zero
  • Image 2 from Trust Factor Zero
  • Image 3 from Trust Factor Zero
  • Image 4 from Trust Factor Zero
  • Image 5 from Trust Factor Zero
  • Image 6 from Trust Factor Zero

Technology

Trust Factor Zero is made in Unity 6, with the URP render pipeline, and the game is written in C#. Multiplayer uses Mirror over the Steam network, and competitive play has a small server on Unity Gaming Services, written in JavaScript.

LanguageWhat it doesEngine or tool
C#The whole game: movement, weapons, networking, ZeroWare, bots, matches, progression and menusUnity 6 (6000.6), with URP and the Input System
C# (Mirror)Multiplayer without dedicated servers: the host decides and the clients only send their commandsMirror, with the FizzySteamworks transport
C# (Steamworks.NET)Steam rooms: create, browse, invite and find matchSteamworks.NET
JavaScriptCompetitive server: ranks and match resultsUnity Gaming Services (Cloud Code, Cloud Save and Authentication)
  • Platform: 64-bit Windows PC.
  • Networking: simulation at 64 ticks per second with host authority, client-side prediction, interpolation and lag compensation up to 250 ms.
  • Automated tests: scenarios that start the game on their own and check the aimbot, anti-aim, backtrack, matches, bots and progression.
  • Low poly weapon and character models, and weapon sounds, from Unity Asset Store packs.

Release notes

Spoiler: notes for every version (9)

v0.7.0

current version

M5: competitive play with ranks

You only see rooms on the same version: every player has to update to v0.7.0.

Competitive rooms

  • 2v2 and 5v5, always Rage and Smurfs against Tryhards, with no bots. The first team to 16 kills (2v2) or 40 (5v5) wins, or the one with more after 10 minutes. There is a single match per room.
  • In the menu, first choose the room type: Casual, Competitive 2v2 or Competitive 5v5. In competitive, the menu shows your rank.
  • Warm-up: the match only starts with both teams full and every rank confirmed. Until then, kills don't count. Then everyone respawns and it begins.
  • Fixed roster: whoever leaves midway still loses. If a team is left with nobody, the other team wins.
  • On the scoreboard, in competitive rooms, each player's rank appears instead of their level.

Ranks

  • 18 ranks, from “Innocent Bronze I” to “Trust Factor Zero”, by way of “Suspicious Silver”, “Reported Gold”, “Platinum Under Review”, “Diamond Under Watch”, “Fake Lag Master” and “Spinbot Legend”. Each rank has 100 RP.
  • Placement: the first 5 matches count double.
  • Points: win: +25 RP; loss: -20 RP; draw: 0; for each rank the opponents are above you, you gain 5 more and lose 5 less (and the reverse if they are below); RP never drops below 0.

Matchmaking

  • “Find match” (Steam) joins the competitive room of the same size within 1 rank of yours (or less) that has the most players; if there is none, it creates one. The room closes when the match starts.
  • The host checks the rank of whoever joins with the server. Anyone more than 1 rank away is removed, with the reason shown in the menu.

Competitive server

  • Ranks live on a server (Unity Gaming Services) and only it can change them. That is why competitive play needs internet. Casual rooms work without it.
  • Each player sends the result they saw. It only counts when more than half of the match's players, with people from both teams, send the same one. If there is no agreement, the match is marked “disputed” and nobody gains or loses points.
  • The competitive account is tied to each PC (an anonymous account). Logging in with a Steam account will come when the game has its own App ID.

Fixes

  • The waiting text no longer spills out of the match bar during warm-up.

v0.6.1

first-person hands

You only see rooms on the same version: every player has to update to v0.6.1.

Hands on the weapon

  • In first person you can now see your hands and arms holding the weapon, on the rifle, the pistol and the sniper. On the rifle and the sniper, the left hand holds the weapon from underneath. On the pistol, both hands wrap around the grip. The sleeves take the team colour in Team Deathmatch. They disappear when you're dead, scoped in with the sniper, in third person or with no weapon in hand.
  • It's only visual and only on your screen. Other players still see your body, which was already holding the weapon. It doesn't change shots or hitboxes.

Fixes

  • Automated tests no longer touch your progress: the game's test and capture runs were saving kills to the real progress.json. Now they stay in memory only.

v0.6.0

M4: progression, TF Coins and shop

You only see rooms on the same version: every player has to update to v0.6.0.

Levels and prestige

  • XP and TF Coins: Kill: 100 XP and 10 TF; headshot: an extra 25 XP and 5 TF. Match played: 200 XP and 25 TF; win: an extra 500 XP and 60 TF. Bot kills are worth half, and only the first 10 in each match give a reward.
  • Levels from 1 to 50. At 50 you can prestige: you go back to level 1 and earn a TF Perma Coin. Your coins and unlocks stay.
  • You start with a 300 TF welcome bonus.

ZeroWare shop

  • Rage rooms: some features now come from the shop. You rent them with TF Coins for 3 Rage matches, once you reach a certain level. A Perma Coin makes them yours forever (no minimum level).
  • Free: aimbot (with silent aim, auto-fire and no recoil), triggerbot, RCS, basic ESP, spinning anti-aim, auto-bhop, FOV circle, recoil crosshair and night mode.
  • From the shop: Auto-stop and hit chance: level 2, 150 TF. Advanced ESP: level 3, 150 TF. Removals: level 4, 100 TF. Auto-strafe: level 5, 200 TF. Third person: level 6, 150 TF. Advanced anti-aim: level 8, 300 TF. Backtrack: level 10, 350 TF. Fake lag: level 12, 300 TF. Resolver: level 15, 400 TF. No spread: level 20, 500 TF.
  • In ZeroWare: locked features are greyed out, with the level and the price, and there's a button that takes you to the shop.
  • Legit rooms: none of this counts; the values are fixed and the same for everyone.

Missions and achievements

  • Three missions a day (they change at midnight UTC), for example “Get 5 kills with anti-aim on” or “Play 2 matches in a Legit room ("I swear it's skill")”.
  • 9 achievements with one-time rewards, from “First Blood” to “Nobody Believes It's Skill” (1000 kills, which gives a Perma Coin).

Profile and HUD

  • Profile and shop: in the main menu and the Esc menu, with your level, the XP bar, your coins and your stats (kills, times banned, K/D, headshots, matches, wins).
  • In game: Level and coins above your health. Notifications for XP, missions, achievements and level-ups. What you earned in the match appears on the end screen.
  • On the scoreboard: each player's level appears.
  • Match reward: it only counts for those who were in the match for at least 30 s and didn't play alone.

Where your progress is kept

  • For now, on your PC (progress.json in the game's data folder). There's no server yet, so your progress doesn't carry over to another PC.
  • A file edited by hand is set aside and your progress starts over.

Fixes

  • At the end of the match, the “BANNED” screen for whoever died in the last second no longer stays on top of the scoreboard.

v0.5.0

M3: game modes and bots

You only see rooms on the same version: every player has to update to v0.5.0.

Game modes

  • When you create a room, you also choose the game mode (as well as Legit or Rage). The Steam room list shows [Rage: TDM], for example.
  • Deathmatch: free-for-all; the first to 20 kills wins.
  • Team Deathmatch: Smurfs (blue) against Tryhards (orange); the first team to 40 kills wins.
  • In both modes, if nobody gets there, whoever has the most after 10 minutes wins.

Teams

  • Whoever joins goes to the team with fewer players, and their shirt takes the team colour.
  • No friendly fire: bullets pass through teammates.
  • The aimbot, triggerbot, backtrack and ESP ignore teammates.
  • Teammates' names appear above their heads when they're in sight (not through walls).

Match

  • At the top of the screen: the mode, the time left and the score (the leader and your kills, or the team score).
  • At the end: the winner and the scoreboard appear. Nobody moves or shoots for 8 s, and then another match starts with everything back at zero.
  • Spawns: you spawn at the point furthest from the enemies. In Team Deathmatch, each team spawns in its own half of the map.
  • Scoreboard (Tab): split by team, with bots marked as [BOT].

Bots

  • In the menu: up to 9 bots, on Easy, Normal or Hard.
  • Same rules as players: each bot is a normal player that sends the same commands as you, so movement, recoil, spread and lag compensation are the same.
  • How they play: they roam the map and go to check where the shots they heard came from. They only see whoever is in front of them with no walls in between. They react with a delay, their aim is off (less and less the longer they track you), they fire in bursts and they strafe.
  • By difficulty: Easy: 0.5 s reaction, almost always aims for the body, no recoil control. Normal: 0.32 s reaction, aims for the head on 35% of targets, controls half the recoil. Hard: 0.2 s reaction, aims for the head on 60% of targets, controls 90% of the recoil and stops to shoot.
  • Rage rooms: half the bots use spinning anti-aim.

Fixes

  • The kill feed showed a square for headshots; now it shows “(HS)”.

v0.4.0

ZeroWare ideas pack

You only see rooms on the same version: every player has to update to v0.4.0.

Aimbot (Rage)

  • Hit chance: with auto-fire, it only fires when the current spread gives this probability of hitting.
  • Auto-stop: when there's a target, it stops with a counter-strafe, so the running spread doesn't ruin the shot.
  • No spread: the spread comes from a predictable seed, so the cheat calculates it before firing and cancels it out.
  • Resolver: aims at the exact pose from a snapshot and tells the host to rewind to that tick. It hits players using jitter, who always appear on the same side to everyone else.
  • Backtrack (up to 200 ms): hits where the enemy was a moment ago. The host never rewinds more than 250 ms in total, so with high ping there's less left.

RCS

  • Pulls your aim against the recoil of your sprays; you can see the crosshair coming down.
  • Legit: a fixed 50% on both axes.
  • Rage: horizontal and vertical from 0 to 100%.

Anti-aim (Rage)

  • The spinbot is now one of the anti-aim modes. The modes are spin, jitter (switches sides every tick), backwards (your back to where you're looking) and hide head (your back to the nearest enemy).
  • Pitch: normal, down or up.
  • Your camera never moves, and when you shoot, your body points back at your crosshair.

Movement and networking (Rage)

  • Auto-strafe: in the air, with Space held, it strafes for you. With auto-bhop you go faster than running speed without touching WASD.
  • Fake lag (up to 14 ticks): holds back your inputs and sends them in a burst, so others see you stop and skip. It never delays a shot, and if a burst is lost the next one carries it again.

Visuals

  • ESP (Rage): full boxes or corners only, fill, a circle the size of the head hitbox, the animated model's skeleton, arrows for players off screen, sound ESP (a ring on the ground where each shot came from) and a backtrack trail.
  • Crosshair (Rage): aimbot FOV circle and recoil crosshair (where the next bullet will land).
  • Removals (Rage): no scope overlay and no visual recoil. Bullets still have recoil.
  • Third person (Rage): over-the-shoulder camera, with your body and the weapon in hand. It goes back to first person when you scope in.
  • Night mode (Legit and Rage): darkens the map. It's only visual.

Configs

  • In the new Configs tab, your config is exported as text (ZW1:…) to the clipboard and imported from there. Imported values are kept within the menu's limits.

Fixes

  • A shot that hit you in the head left a spark stuck to the camera, covering the screen.

v0.3.1

Low poly models and sounds

You only see rooms on the same version: every player has to update to v0.3.1.

Weapons

  • The cube weapons have given way to textured low poly models: the Rifle is an M4, the Pistol an M1911 and the Sniper an M107 with a scope.
  • Bullet tracers come out of the tip of the barrel.
  • You see your weapon smaller, close to the camera; others see it at full size, at the shoulder.

Players

  • The blue capsule has given way to an animated low poly character: idle, walking, running and in the air.
  • The legs turn towards where the player is moving and the torso and head towards where they're pointing, so you can see where someone is aiming.
  • It holds the weapon with both hands and bends its knees when crouching.
  • The hitboxes haven't changed: the character's head sits inside the head hitbox.

Sound

  • Real gunshots for each weapon, instead of the placeholder sound.

v0.3.0

M2: cheats and Legit/Rage rooms

Rooms

  • Each room is Legit or Rage, chosen by whoever creates it. Every player in the match has the same rules, and the mode appears in the Steam room list.
  • Legit: basic cheats with fixed values, on/off only.
  • Rage: anything goes and the options can be tuned.

ZeroWare cheat menu (Insert)

  • Aimbot: In Legit, it's a gentle assist: only while you're shooting, with a 5° FOV. In Rage, it has an FOV of up to 180°, silent aim (the camera doesn't move), auto-fire (with automatic scoping on the sniper), no recoil, and a choice of head or body.
  • Triggerbot: fires when the bullet would land on an enemy. In Legit it has a 120 ms reaction; in Rage the delay is adjustable.
  • ESP: boxes, names and health through walls, with a different colour for those in sight or hidden. In Rage there are also distance, weapon and lines.
  • Spinbot (Rage): your body spins and your head dips for everyone else, but your camera doesn't move. When you shoot, it points back at your crosshair.
  • Auto-bhop (Rage): with Space held, you jump every time you touch the ground.
  • Your options are saved.

Gameplay

  • The head tilts forward when you look down. The spinbot really changes where the hitbox is, and lag compensation takes that into account.
  • Movement correction: with spinbot or aimbot on, you keep moving towards where you're looking on screen.
  • The HUD shows the room type and which cheats are on.

v0.2.0

M1: netcode and weapons

Networking

  • 64 Hz tick simulation with host authority. Movement, shots and damage are decided by the host. Clients no longer send their position, only their inputs.
  • Client-side prediction with reconciliation. Your player moves and shoots straight away, without waiting for the host. If the host disagrees, the position is corrected smoothly.
  • 32 Hz snapshots and interpolation. Other players look smooth even with ping and packet loss.
  • Lag compensation. The host rewinds the other players to the moment you were seeing when you fired (250 ms at most). If you hit on your screen, it counts.
  • Basic anti-speedhack. The host doesn't accept inputs faster than the tick rate.
  • Teleports (respawn) no longer slide across the map on other players' screens.

Weapons

  • Three weapons: Rifle: automatic, 30 rounds, 34 damage to the body and 136 to the head. Pistol: semi-automatic, 12 rounds, 28 to the body and 112 to the head. Sniper: bolt-action, 5 rounds, 115 to the body, with a scope (right mouse button). Switch with 1, 2 and 3, and each weapon takes a moment to be ready.
  • Recoil with a pattern. The camera only rises with part of the recoil; the rest throws the bullets off. Pull the mouse down to compensate.
  • Spread. It gets worse when running, in the air and in bursts, and better when crouching. The sniper is inaccurate without the scope.
  • The crosshair widens and narrows with the weapon's real spread.
  • The shot you see is the shot the host calculates: the spread randomness is the same on both sides.

HUD

  • Weapon name, slots 1/2/3 and each weapon's ammo.
  • Sniper scope.
  • On the scoreboard (Tab), the ping and how many position corrections there have been.

v0.1.0

M0: base prototype

  • Unity 6 (URP) project with Mirror, Steamworks.NET and FizzySteamworks.
  • CS-style movement: run, walk, crouch, jump, air-strafe and manual bunny hop.
  • One hitscan weapon with headshots, health, death (“BANNED”) and respawn after 3 s.
  • HUD with crosshair, health, ammo, hit marker, kill feed and scoreboard.
  • Matches without servers: Steam lobbies (create, search, invite) or direct IP on port 7777.
  • Test arena generated in code.