Repository navigation
Hangouts Territory and Reputation
JetSetCraft should make rare gangs feel like they live in the world without turning the save into a permanent NPC simulator or changing vanilla/modded world generation.
The core model is:
Natural Hangout = tiny persistent site record + small resident crew + additive micro-dressing.
Boombox/Event Crew = temporary competition cast that leaves after the event.
This distinction is a performance and compatibility rule.
A Natural Hangout is a gang adopting a place Minecraft already generated. JetSetCraft does not carve a base, reserve terrain, replace structures, or modify biome generation.
Each discovered hangout stores only a compact record:
- stable
site_id/ local chapter ID - parent
gang_id - dimension and anchor position
- soft home/activity radius
- discovery state
- resident references
- tiny chapter mood/affinity state
- furniture layout seed/manifest
- a few bounded notable-history flags
- last meaningful interaction/visit
- validity state if the terrain later changes
The site record owns no chunk ticket. When its chunks are unloaded, it has no live gang AI and should cost essentially only saved-data/disk space.
A territory radius is an influence field, not land ownership. It must never prevent normal spawning, structures, player building, another mod's systems, or chunk unloading.
If a player or another mod changes the area substantially, JetSetCraft re-scores the site and gracefully shrinks, redresses, migrates, or retires it. It never restores old terrain over player/mod changes.
Ultra-rare Natural Hangouts have a small resident crew, not a crowd. These residents are real persistent world actors:
- original vanilla/mod-owned entity type
- real JetSetCraft Street Gear
- persistent gangification while that gear remains equipped
- associated with one
site_id - soft-home behavior around the site
- cheap idle actions such as short skate loops, emotes, practice tricks, greeting/taunting players, or using hangout props
- no full strategic competition AI unless a challenge is active
- no force-loaded chunks
When their chunks unload, normal Minecraft entity/chunk serialization handles them. JetSetCraft must not keep the area loaded merely because a gang lives there.
The home rule is intentionally soft. A resident may path back when practical, but must never rubber-band teleport merely to preserve the hangout. If ordinary gameplay or another mod legitimately moves a resident far away, it can become a roaming member or detach from that local chapter rather than fighting the rest of the modpack.
Boombox challenges and scripted street events may create an explicit ephemeral event_actor cast. They:
- exist for the challenge rather than as permanent residents
- inherit the target
gang_id - may optionally reference a relevant
site_idfor scoring/local memory - never create a permanent hangout just because they spawned
- perform a stylish exit after results when possible: grind away, skate down a street, jump a ledge, enter a portal, etc.
- despawn only after leaving meaningful player view/interaction range, with a safe bounded cleanup timeout if a cinematic exit cannot finish
- do not leave ordinary mob loot or Street Gear merely because the event system removed its temporary cast unless that event explicitly awards it
This is actor cleanup, not a fake de-gangification transition. Existing normal mobs are never silently converted by an event.
Hangout furniture is post-generation dressing applied to empty/safe space after JetSetCraft discovers the site. It should make the location recognizable without behaving like a structure generator.
Geometry-aware layout archetypes can include:
- rail-side hang
- alley/wall hang
- rooftop hang
- cave-mouth hang
- village-edge hang
- bridge/underpass hang
- forest clearing hang
- waterfront hang
- Nether ledge hang
- optional dimension/mod-specific safe archetypes
Possible dressing includes a Boombox, crates, folding seats, cones, boards, graffiti practice panels, small lights, banners, tool piles, or trick markers.
Placement rules are strict:
- Never replace a solid vanilla/mod/player block merely to make the hangout fit.
- Use only safe air/replaceable positions against detected floors/walls.
- Never flatten terrain, carve blocks, cut trees, reroute fluids, or alter a source structure template.
- If the full layout does not fit, use fewer props. If nothing fits, the crew can hang there with no furniture.
- Prefer static non-ticking JetSetCraft props. Do not create one ticking block entity/entity per decorative object.
- Interactive props are rare and bounded.
- Keep a placement manifest so retirement removes only JetSetCraft-owned dressing.
World generation therefore remains source-owned: Minecraft/the installed mod generates the place; JetSetCraft notices it and lightly dresses available empty space afterward.
Do not track reputation independently for every spawned gang member.
The primary durable progression remains:
player UUID + gang_id -> GangReputation
This controls broad hostility/friendliness, membership, unlocks, betrayal/reconciliation, rename rights, rewards, and how that gang treats the player across the world.
A Natural Hangout may additionally store a small site_id memory so a particular crew/place can remember important local history without becoming a second giant RPG reputation system.
Examples:
- discovered
- first challenge won/lost
- defended from a rival
- repeatedly helped
- vandalized/betrayed
- local champion defeated
- currently welcoming/annoyed/hostile
Keep this bounded: one small affinity bias plus a handful of notable flags. Never store an unbounded interaction transcript.
One Natural Hangout or one event cast is one reputation target. Five members do not award reputation five times.
- event away from a hangout -> update
gang_id - event tied to a hangout -> update normal
gang_idreputation plus a small optionalsite_idmemory - helping/attacking several crew members in one encounter -> resolve one balanced interaction/challenge transaction
This makes it feel like the crew remembers you while keeping saves and balance sane.
Idle residents should not each run expensive gang strategy. A loaded hangout uses one low-frequency site-level coordinator that assigns cheap intents such as:
- stand/sit at a prop anchor
- skate a short cached loop
- practice one trick
- watch another member
- dance/emote
- use a graffiti practice surface
- greet/taunt a nearby player based on reputation
- return toward the soft home radius
Individual mobs keep ordinary local steering/navigation. Full route planning, team roles, paint strategy, intercept logic, and other competitive intelligence activate only when a real challenge begins.
- No force-loaded gang chunks.
- No global per-tick scan for hangouts.
- Activate sites only near players, with a farther deactivation radius to prevent boundary thrashing.
- Small resident cap per Natural Hangout.
- Bounded simultaneously active hangouts per dimension/server.
- Zero strategic gang AI for unloaded sites.
- No ticking decorative furniture.
- Cache route/anchor analysis rather than rescanning terrain every tick.
- If budget is exceeded, reduce ambient animation/decision frequency before reducing gameplay correctness.
The goal is that hundreds or thousands of discovered hangout records in distant unloaded areas are cheap because they are records, not active simulations.
- Candidate — ultra-rare cheap rarity gate succeeds.
- Validate — score existing terrain/space without modifying it.
-
Create — assign
site_id, gang, anchor, radius, roster budget, and dressing seed. - Dress — add only safe JetSetCraft-owned props in empty/replaceable space.
- Residents arrive — small original-type crew gets real Street Gear.
- Dormant — chunks unload; no JetSetCraft live simulation.
- Active idle — player nearby; low-frequency Hangout Brain.
- Challenge — temporary high-level controller drives participating residents/event actors.
- Post-event — residents return to cheap hangout life; event actors skate away/despawn.
- Revalidate — terrain changes can shrink, migrate, or retire the site.
- Retire — remove only JetSetCraft dressing and leave source/player terrain untouched.
- Natural Hangout discovery does not change biome/structure generation or replace source blocks.
- A hangout in an unloaded chunk never keeps that chunk loaded.
- Natural residents remain associated with
site_idafter event end and save/reload while their gear remains equipped. - Idle loaded hangouts stay inside the configured resident/AI budget.
- A Boombox event away from a hangout creates an ephemeral cast that exits/despawns and does not create a permanent site.
- One event resolves one balanced gang/chapter reputation transaction, not one per spawned actor.
- A specific hangout can remember bounded local history while
gang_idreputation remains canonical. - Dressing never replaces solid source/player blocks and safely reduces to fewer/no props when space is constrained.
- Building through a site triggers revalidation/migration/retirement rather than terrain restoration.
- Many discovered but unloaded hangouts have negligible live tick cost.
See also Gang Wars, Boombox & Mob Atlas, Standalone Compatibility Covenant, and Compatibility.
JetSetCraft Wiki · Forge 1.20.1 · Repository · Release 0.3.0 · Research Atlas · Roadmap
Current capability, verified evidence, research inspiration, and future design are intentionally separated.
- 🏁 Terrain-Aware Circuits & Boss Arenas
- 🎛️ Controls
- 🛼 Ride Styles
- ⚡ Tricks, Combos & Flow
- 🕺 Breakdance & Cyphers
- 🛤️ Grinding & Transfers
- 🌍 World Physics
- 💥 Krumpaz — Krump Crew
- 👟 Footworkas — Chicago Footwork
- 🎶 Reactive Music, Dances & Mob Bosses
- ⚡ Hardtekkas & Tekkistas To-dos
- 🔊 Phonkistas & To-dos
- 🎹 Cumbias Rival Gang & To-dos
- 🔥 Gabberina's Campaign & To-dos
- 🎨 Graffiti
- 📻 Gang Wars, Boombox & Mob Atlas
- 🗺️ Hangouts, Territory & Reputation
- 👥 Chapters, Posse & Mob Archetypes
- 🧭 Research Atlas
- 🛹 Street Sports, Movement & Rides
- 🎨 Graffiti, Music & Audio
- 🎞️ Animation, Models & Creators
- 🧰 Frameworks, Java & Bedrock