Curitor
Start Here · Buyer's Guide

Games You Could Build

Nine well-known party and co-op games, measured against what ships today. For each: what you get the day you import the kit, named by component — and what you would build yourself. The second list is why you can trust the first.

How to read this page

Party Core Kit is a foundation for multiplayer party and co-op games: one character prefab that runs single-player, split-screen and online without changing; stats, inventory, equipment, combat, rounds, building and saving as modules; and a low-code layer of conditions and instructions that composes them in the Inspector. That is an abstract sentence. The rest of this page makes it concrete against games you already know.

Each section is one reference game or genre cluster. The day one table names the shipped components and the folder under Assets/PartyCoreKit/ where you will find them, because you will check. The what you would add list is stated just as plainly, with the seam it would sit on. Ids like D5 or K1refer to the toolkit's own gap catalogue, so the same hole is named the same way wherever it appears.

Physical party platformer — Fall Guys, Party Animals

The genre the kit was built around, and where the coverage is deepest: a physics character on a hazard course, a fall rule, a countdown, a results board, bots to fill the field.

FieldTypeWhat it does
PartyCharacter, MovementConfigCharacter/, Movement/The motor: walk, run, jump, sprint with a stamina drain, coyote time and jump buffering as tunable numbers. One public input API shared by gamepads, keyboards and bots.
CrouchMode, SwimMode, SlideModeMovement/Headroom-aware crouch, buoyant swimming, and an automatic slide on ground steeper than slideThresholdAngle. Each is a component you add or remove.
RoundControllerRounds/Waiting, Countdown, Running, Finished. AllPlayersFinish for a co-op course or FirstPlayerFinishes for a race, a time limit, and a per-scene choice of whether a fall respawns you or ends the round for everyone.
OutOfBoundsInstruction, SetCheckpointInstruction, PlayerRespawnerScripting/, Rounds/The fall funnel: leave the course, return to your last checkpoint, and the fail is counted on your result row.
MovableObject, BobbingObstacle, TriggerBehaviourScripting/, Maps/Doors and drawbridges with two authored poses, timed sprout-and-retract obstacles, and zones that drain or buff a stat on whoever enters.
MeleeAttack, MeleeHitbox, DamageClaim.ImpulseCombat/Swings that shove. A claim may carry knockback with zero damage, so bumping another player off a platform goes through the same arbiter as a hit rather than a second combat system.
MapGenerator, MapBuilderMaps/A seeded, completable course that is different every round and identical on every machine.
CoopSpawner, CameraRigCoop/, Camera/Split-screen from a second gamepad pressing a button, and a per-player camera rig that already knows about viewports.
BotSpawner, BotBrain, BotProfileBotPlayers/Opponents that run your course through the real character controller and miss jumps at rates you tune.

What you would add

  • A player-commanded dive or slide. SlideMode takes control on ground angle alone and cannot be asked for — only fallen into. A dive is a new IMovementMode written against the sensors the motor already publishes.
  • A variable-height jump. TryConsumeJump applies one fixed impulse. Nothing scales it by how long the button is held.
  • Grabbing other players. ChargeThrowInteractable carries and throws props; no verb picks up a character.
  • Elimination rounds and a match across rounds (D2, D1). RoundPlayerResult resets each round and Finished reloads the level; nothing counts qualifiers or totals a series.
  • Live standings during the run (D5). LapTracker and RoundHud know finish order, not mid-race position.
  • Ragdoll on impact (L2). Reactions are Animator-driven.
  • An in-game character creator. CharacterCustomizer's part-swap API is real, but the only thing that calls it is the editor's CharacterDesignerWindow. A player cannot change their look at runtime today.

Social deduction — Spyfall, Among Us

Tasks, sabotage, a timer, a kill, and a lobby to do it in are all shipped glue. The two things that make the genre — a secret and a vote — are not.

FieldTypeWhat it does
RoundController, RoundPhaseConditionRounds/, Scripting/A timed round whose phase any rule can read.
InteractableBehaviour, WaitInstruction, WaitUntilInstructionScripting/Tasks as interactions: press, hold for N seconds, or press several times, with a prompt. Chain steps with pauses and abort early.
ShowNotificationInstruction, NotificationCenterScripting/, UI/A toast or banner delivered to the subject — the player who triggered the rule — through their own NotificationCenter, so only that machine shows it.
MovableObject, ToggleGameObjectInstruction, HotkeyBehaviourScripting/Doors that seal, lights that go out (toggle the light objects), and a key that fires a rule.
MeleeAttack, CharacterDamageable, IsAliveConditionCombat/, Scripting/A kill through the combat pipeline, and rules that run only for the living — or only for the dead, by unticking Expect Alive.
SetStatEnabledInstruction, ModifyStatInstructionScripting/Sabotage as stats: switch a resource off, drain it, restore it.
SceneFlowController, NetworkLobbyUISceneFlow/, Networking/Host, join by address, load the level, return to the lobby.

What you would add

  • Hidden roles assigned at round start (A1). Round state is a fact replicated to everyone, and there is no assignment step. CharacterGroup is a serialized Player / Enemy / Neutral field on CharacterStats, read-only at runtime — a side you author, not a role you roll.
  • Per-player private information (A2). Three precedents exist — the subject-targeted notification above, PlacementReplicator's client-targeted RPC, and IObjectiveSource's per-player contract — but no general "only this player knows" channel.
  • A discussion and voting phase (D6 + H1). RoundPhase has no non-play phase, and the UI kit has CardGrid but no ballot bound to it.
  • A task checklist as content (A3). IObjectiveSource points a HUD arrow at one objective; it is not a list with completion state.
  • A round that ends when the impostor is ejected (D2). RoundEndCondition has two values: everyone finishes, or the first one does.
  • Voice chat. Nothing ships.

Hide-and-seek with tasks — Hunting Buddies, West Hunt

Asymmetric sides, sneaking, tasks, a tag. The sides and the sneaking exist; the asymmetry is authored rather than dealt.

FieldTypeWhat it does
CrouchModeMovement/Sneaking on a smaller capsule that refuses to stand back up under a low ceiling.
InteractableBehaviour, TriggerBehaviourScripting/Hold-to-complete tasks and zones that react to whoever enters them.
CharacterGroup, CharacterGroupMaskCore/Every character carries one group (Player, Enemy, Neutral); combat's friendly-fire mask and the overhead bars filter by it, so hunters cannot hurt hunters.
MeleeHitbox, TookDamageConditionCombat/A tag is a hit, and a rule can react to having been hit.
ObjectiveIndicator, GoalRaceObjectiveSourceUI/An on-screen and off-screen marker toward one objective.
RoundControllerRounds/A timed round with a results board. Nothing else about the format is assumed.

What you would add

  • Role assignment (A1). The group is set on the prefab, not rolled when the round starts.
  • A tag or catch round rule(D3). Being hit lowers health; nothing transfers a "caught" token or ends the round on it.
  • Task lists (A3), as above.
  • A proximity cue (G3). The Distance number parameter measures how far apart two objects are, but no warmer-colder cue or heartbeat is built on it.
  • Seeker or hider AI (C2, F3). BotBrain follows a waypoint route toward a finish node and has no notion of another player.

Prop hunt

The props are ready: they take hits, show health, flinch, break and respawn. The player becoming one of them is the part that does not exist.

FieldTypeWhat it does
DamageableObject, PropHealthBar, DamageReactionAnimator, RespawnableCombat/, Scripting/A prop with its own health that shows a bar on the first hit, flinches, breaks and comes back. The shipped Target Dummy prefab is exactly this stack.
MeleeAttack, ChargeThrowInteractable, ThrownDamageSourceCombat/Seekers swing at props, or pick one up, hold to charge a throw while a trajectory arc shows where it lands, and let it fly.
ToggleGameObjectInstructionScripting/Show and hide objects from a rule.
CharacterCustomizerCharacter/Swapping which meshes make up a body is a shipped operation — driven from the editor's Designer window.
RoundControllerRounds/Timer and results.

What you would add

  • Becoming a prop(C1). Moving the player's identity, camera and collider onto a world object is the headline mechanic, and no seam does it. The golf ball and the vehicle below want the same primitive, which is why it should be built once.
  • Roles (A1).
  • Taunt sounds and other audio hooks (L1). A saved master volume ships in GameSettingsStore; no event hooks do.
  • Hider AI that blends into the room (C2).

Survivors-like — Megabonk

Stats that scale with level, timed buffs, drops, damage in and out — the numbers half of a survivors game is largely assets. The horde half is not.

FieldTypeWhat it does
StatDefinition, StatInstanceStats/Health, a Level stat, and a maximum that scales with it — MaxHealth = 100 + Level x 10 is one dropdown (PlusScalingStat), not a script.
StatEffectDefinition, StatEffectListUIStats/Timed buffs and damage-over-time as assets, with a countdown chip on the HUD.
CharacterDamageable, DamageableObject, OverheadStatBarCombat/, Stats/Player health through the pipeline; enemy bodies with health and no stats component; floating bars filtered by group.
MeleeAttack, ThrownDamageSource, DamageClaim.TargetEffectCombat/Melee, thrown weapons, and a hit that applies a slow or a burn when it lands.
ItemDropper, LootTable, ApplyStatEffectInstructionInventory/, Scripting/Runtime drops rolled from a weighted table, and pickups that grant a timed buff on contact.
NotificationCenterUI/"Level Up!" banners, queued rather than drawn over each other.
RoundControllerRounds/A timed survival round.

What you would add

  • Enemies that pursue and attack (F3). BotBrain is an input provider following a NavGraph route to a finish node — no aggro, no attack, no damage. The Goblin under Enemy/ is a model with hit and death animations, not a brain.
  • Wave spawning as content.
  • The level-up "pick one of three" (H1) and a perk build with a slot budget (H3). CharacterEquipment has five anatomical slots whose payload is a stat number, not behaviour.
  • Meta-progression unlocks (H5). Persistence gives them a store; the gating primitive is not built.
  • Dozens of agents at once. Nothing about the bot stack has been measured at horde counts. Do not assume it.

Physics golf — Super Battle Golf

Closer than it looks. Shared objective zones, stroke counting, first-in-the-hole, seeded courses and damage-free interference all ship; the swing itself is bound to the wrong object.

FieldTypeWhat it does
ChargeThrowInteractableCombat/Pick up a prop, hold Attack to charge while a ghost arc shows the landing point, release to launch. The charge is owner-side; only the impulse crosses the wire.
LaunchInstruction, ThrownDamageSourceScripting/, Combat/Fire-and-forget launches from a rule, with the instigator stamped for attribution.
CombatArbiter, DamageClaim.ImpulseCombat/Interference without damage. A zero-damage claim is legal when it carries an impulse, so ball-on-ball and player-on-player bumps are arbitrated exactly like a hit.
TriggerBehaviour, ObjectiveIndicatorScripting/, UI/The hole as a zone, with an off-screen marker pointing at it.
StatDefinition, ModifyStatInstructionStats/, Scripting/Strokes as a stat, incremented by a rule on each launch.
RoundControllerRounds/FirstPlayerFinishes ends the hole when the first ball drops.
MapGeneratorMaps/A seeded course every match.

What you would add

  • Aim, charge, release as a character input verb (B1). The charge curve and the arc widget exist, bound to a carried prop. A swing that launches a ball at your feet with a power meter is not an input the character has.
  • The ball as the player (C1) — camera, identity and input on a rigidbody.
  • Hole-by-hole totals (D1). RoundPlayerResult resets per round.
  • Live standings (D5).

Build-then-race — Make Way

Two halves. The race half is the round system as shipped. The build half is further along than a racing buyer would expect: the Building module is runtime, player-driven, validated, replicated and saved. It is a grid, not a track.

FieldTypeWhat it does
BuildModeController, BuildingToolDefinitionBuilding/Equip the hammer, aim, and a ghost of the held item appears at a grid-snapped spot — green where it fits, red where it does not. Place or pick back up on input; rotate in configured steps.
PlaceableDefinition, PlacementValidator, BuildingConfigBuilding/Any item becomes placeable by its type. The validator refuses a spot as OutOfReach, NoSurface, TooSteep or Blocked, and says which. Grid size, rotation step and reach are one config asset.
WorldPlacementSystem, PlacementReplicator, WorldPlacementStoreBuilding/A server-arbitrated placement ledger replayed to late joiners, and a save store that rebuilds what players built.
RoundController, LapTrackerRounds/Lap races over ordered checkpoints (no lap-line farming), ending on the first finisher.
OutOfBoundsInstruction, PlayerRespawnerScripting/, Rounds/The no-death rule: fall off, resume at your last checkpoint.
MapTileCatalogMaps/The modular piece library, as data.

What you would add

  • Track pieces that connect by sockets (I1). Placement snaps to a world grid; there are no directional connectors, and placed objects are static copies with no Rigidbody — right for ramps and walls, wrong for seesaws.
  • A build phase between races and a match to a point threshold (D6 + D1). RoundPhase has no non-play phase; Finished reloads the level.
  • One shared camera framing everyone (J1). CameraRig is per player; split-screen is the only local option the kit offers.
  • Kart handling (B5) — a vehicle mode on the IMovementMode seam.
  • Live standings and first-to-checkpoint points (D5).
  • Bots on player-built tracks. MapBuilder emits NavNodes for generated courses; runtime placement does not.
  • The shared pick-one-of-N offer (H1).

Customize-then-race — Sonic Racing: CrossWorlds

The contrast case to Make Way: the same round-based racer shape, but the time between races is spent on builds and unlocks instead of construction. That stresses the persistence and equipment half of the kit, which holds up better than the vehicle half.

FieldTypeWhat it does
LapTracker, LapCondition, LapTrackerObjectiveSourceRounds/, Scripting/, UI/Ordered-checkpoint laps, rules keyed to a lap count, and a marker toward the next gate.
LootTable, LaunchInstruction, DamageClaim.TargetEffectInventory/, Scripting/, Combat/Seeded item rolls identical on every machine; items that launch through the combat pipeline and apply a slow or a burn on landing.
ToggleGameObjectInstruction + LapConditionScripting/Lap two somewhere else: author variant roots in the scene and swap them when a lap is reached. Pre-authored, same scene, all loaded up front.
IMovementMode, SwimModeMovement/Land-to-water transformation is the shipped pattern: SwimMode swaps the entire locomotion model off a water sensor. One mode per terrain plus priority selection is how a car becomes a boat.
BotProfile, BotKpisBotPlayers/Rival difficulty as ranges rolled once per bot. Casual, Average and Skilled presets ship as ordinary assets.
CharacterEquipment, EquipmentDefinition, InventorySaveStoreInventory/Worn gear that shows on the character and raises stats, saved per seat between sessions.
ProgressionStoreProgression/Per-level best time; rounds played, won and DNF per player — recorded automatically when a round finishes.
CoopSpawnerCoop/Local split-screen.

What you would add

  • A vehicle mode (B5). Steering, drift and acceleration curves as an IMovementMode on the existing capsule.
  • The gadget plate (H3): a capacity-budgeted loadout whose entries cost 1..n and carry behaviour. Equipment slots are anatomical and their payload is a number.
  • Race Park (H4): host-chosen rules in the lobby that replicate and survive the load. MapSession + MapReplicator do exactly this for three map values and nothing else.
  • Travel Rings, or any rank-awarded choice (D5 + H1).
  • Grand Prix cups (D1).
  • Unlock gating (H5). LevelDefinition has no lock field; the save store exists, the gate does not.
  • Catch-up items by standing (E6).

Persistent co-op progression — How to Fish

The one reference with no rounds at all: a saved world that advances, gear that improves, a catch you sell. It is here because it proves the kit is not only for round-based games — and because it exposes the biggest gap on this page.

FieldTypeWhat it does
(no RoundController)Rounds/RoundController is a component a level author adds. LapTracker, PlayerRespawner and RoundPhaseCondition all null-check it, so a scene without one is a legitimate persistent hub. The kit is not round-locked.
SwimModeMovement/Buoyancy, ascend, dive and water drag.
DamageableObject, PropHealthBarCombat/A creature with its own health and a floating bar, no stats component needed.
MeleeAttack, ThrownDamageSource, DamageClaim.ImpulseCombat/Fighting the hostile ones, with knockback.
ItemDefinition, CharacterInventory, HotbarUI, InventoryPanelUIInventory/The catch as stackable items in a hotbar and bag, drag and drop, replicated online.
CharacterEquipment, EquipmentDefinitionInventory/Rods and weapons that show in the hand slots and raise stats.
LootTableInventory/Weighted, seeded rolls — a rare variant is a low weight.
SaveManager, SaveOwner.Player, InventorySaveStore, CharacterAppearanceStore, ProgressionStorePersistence/, Inventory/, Character/, Progression/Each player's inventory, gear, appearance and records are written by their own machine regardless of who hosts. That is shared co-op progression, and it already works.
WorldMemoryStore, ObjectMemory, WorldPlacementStore, WorldDropStorePersistence/, Building/, Inventory/The world remembers positions, active states, placed and dropped objects across a quit.
SaveGameInstruction, LoadGameInstruction, HasSaveDataConditionScripting/Save points as rules, no code.

What you would add

  • An economy(K1-K4): a wallet, priced offers, buy and sell, a vendor panel. None of it exists — see the last section. This is half of the game's loop, so the honest pitch for this genre stops before "and a shop".
  • Quests (A3) — multi-step tasks with completion and reward.
  • Island unlock gating (H5).
  • Creature AI (F3) — a fish that flees or a hostile that attacks.
  • Casting (B1) and a boat (B5).
  • Audio hooks (L1).

What is genuinely missing today

Read the nine lists together and the same holes recur under different names. Counted by how many of the nine games independently asked for each one:

FieldTypeWhat it does
Economy (K1-K4)9 of 9A wallet, priced offers, buy and sell, a vendor panel. Measured by searching every runtime file: no price field, no wallet, no sell instruction. CurrencyChip is a display-only widget and CardGrid is a shop layout with no shop behind it.
Live standings (D5)4 of 9"You are 2nd of 4" while the round runs. LapTracker already tracks each player's progress; only the cross-player comparison is missing. The smallest gap on this page with the widest reach.
Interstitial phase + match loop (D6, D1)4 of 9A build, shop, vote or loadout phase between rounds, and a score that survives from one round to the next. RoundPhase stops at Finished and reloads; RoundPlayerResult resets.
Pick-one-of-N panel (H1)4 of 9Everyone sees the same offer, each claims one. The parts ship (CardGrid, seeded LootTable, exclusive-claim arbitration in WorldInventory); nothing assembles them. This is also the shop panel.
Roles, secret information, tasks (A1, A2, A3)3 of 9Round-start role assignment, per-player private state, and objective checklists as content. Three per-player precedents exist in the code; no general primitive does.
Unlock gating (H5), elimination (D2), modifier zones (G4)3 of 9 eachPersistence gives unlocks a store but LevelDefinition has no lock field; no round format cuts the bottom half; no bounce pad, conveyor or ice zone ships as a component.
AI beyond route-following (F3, C2)2 of 9 (+4 implied)BotBrain follows a waypoint graph to a finish node. Pursuit, attack, seeking and hiding are all unbuilt, and every genre files the request under a different name.
Shared-screen camera (J1)3 of 9One camera framing all players and zooming to fit. CameraRig is strictly per player; split-screen is the only local option.
Audio hooks (L1), ragdoll (L2)3 of 9A saved master volume ships (GameSettingsStore); no event hooks or music seam do. Hit reactions are Animator-driven, not physical.