Skip to main content

Baccarat model guide

Read as Markdown · All game guides · Measured native reference

Replacement skin support​

This game supports the v2 skin contract. Replace the visible body and the exact named physical meshes listed at the end of this page. Use the surround and trim suggestions below to add matching scenery. Preserve the functional regions and state-dependent clearances described here.

Native identity and proportions​

Use asset: "baccarat", IDs baccarat:0 through baccarat:8, floor elevation Y = 0–64 and scale [1,1,1]. The root is baccarat in the game collection. Position and yaw can change; the table's functional dimensions cannot.

The playing surface is 0.8779038617 source units and approximately 1.376895 world units high. Relative to the canonical bare player body, the ratio is 0.48273607884945505. If making an offline scale sketch with body height H, place the playing plane at H * 0.48273607884945505. In the downloaded world, keep the actual native dimensions. Do not rescale the table to match real-world casino measurements or the rim in a concept image.

Required controls and live areas​

RegionNative functionLeave clear
PlayerSelects PlayerIts physical choice button and betting area
TieSelects TieThe middle choice and its label
BankerSelects BankerIts physical choice button and betting area
DealStarts the configured wagerThe action button on the player side
Stake − / +Changes the configured stake when allowedBoth separate button faces
Settings / stake monitorOpens controls and shows the current amountThe visible screen and click surface
Player and Banker card lanesDealing, optional third cards and totalsFull hand width and the travel from the deck

The native choice indices are 0 = Player, 1 = Tie, 2 = Banker. They are described so an AI understands the template; the skin contract maps control.choice_0, control.choice_1 and control.choice_2 to those choices without accepting an uploaded index or action parameter. Runtime anchor names include player_slot, banker_slot, player_chip_slot, tie_chip_slot, banker_chip_slot, deck and screen. Read their transforms from the reference instead of placing cards by eye.

Original decorative designs that fit​

Add a separate pedestal skirt in solid pieces, side medallions outside the native footprint, or a title sign behind the functional area. Use the game's supported felt tint for a coordinated palette. Keep the native top, choice controls and rail in place. Do not place another felt surface on top: it can hide live cards or intersect their animation plane.

Use matte materials on broad surfaces so the native choice labels remain easy to read. Preserve the distinction between the three wager choices. Decorative symbols should not imply additional bets, changed payouts or an interactive fourth choice. Live amounts, odds, selection highlights and results remain client-rendered.

Layout and state review​

Leave an unobstructed player approach on the front side. Align the walkway with the station's yaw and transform all decorative props with it. A rail or urn between the camera and the table can prevent interaction even if the player can reach the floor position.

Review idle choice selection, dealing, two-card and three-card layouts, and the result state in an authorized preview or session. Check both Player and Banker lanes from portrait and landscape views. Do not add Hit, Stand or Cashout controls: Baccarat's dealing decisions are handled by the game, not by custom user buttons.

AI brief​

Get game_skin_contract for baccarat and download my current world draft.
Build an original [theme] replacement body in Blender using the reference socket
measurements and the preserved gameplay regions described in this guide.
Upload static body/button assets; bind only the listed control/part sockets.
Keep native labels, game values and collision. Use supported v2 placements, clips
and result-motion channels for presentation changes.
Save with game_skin_save and the current revision. Inspect the fitted model
and report budgets and reviewed states. Do not upload code or publish via MCP.

See modeling workflow and scale reference before export.

Reference skin sockets (v1 and v2)​

Read game_skin_contract({"game":"baccarat"}) before saving. The current fingerprint is 977206937f57deca. The live catalog is authoritative if a copied example differs.

The replacement body is fitted to station-local world bounds [-2.9799405, 0, -2.2114296] through [2.9799405, 2.1514812, 2.1421068]. Width, height and depth are [5.9598811, 2.1514812, 4.3535364]. These values already include source scale. Entity scale remains [1,1,1].

Accepted binding slotFixed native actionFixed index / seatNative labelWorld-space bounds, minimum → maximum
control.stake_upstake_upNone+[-1.307622, 1.5770159, 1.4363936] → [-1.0449626, 1.6789612, 1.720139]
control.choice_2choiceindex 2BANKER[0.5617073, 1.5770159, 1.3563146] → [1.2576248, 1.6789612, 1.9332376]
control.quickquickNoneDEAL[1.4435443, 1.5770159, 0.8670745] → [2.2578554, 1.6789612, 1.6505062]
control.choice_0choiceindex 0PLAYER[-0.9307255, 1.5770157, 1.431107] → [-0.2612508, 1.6789611, 1.9673178]
control.settingssettingsNoneSETTINGS[2.448387, 1.5770159, 0.0489424] → [2.8527706, 1.6789612, 0.5784135]
control.choice_1choiceindex 1TIE[-0.1571137, 1.5770161, 1.4978473] → [0.4707916, 1.6789614, 1.9747576]
control.stake_downstake_downNone−[-1.6444073, 1.5770157, 1.3190743] → [-1.366901, 1.6789611, 1.6138176]

Only slot and the converted model asset hash go in each binding. Action, index and seat columns explain platform behavior; do not copy them into uploaded JSON. All listed sockets are optional visual overrides. Omitted sockets retain native meshes. Repeated Settings actions are distinct physical sockets and must use the exact listed ID. The catalog provides exact mesh-local localBounds for fitting and the full matrixSource for native orientation.

Optional static surface: part.playing_surface, native reference top, world bounds [-2.5627488, 1.3580748, -1.6562196] through [2.5627488, 1.3768955, 1.6562196]. Its replacement does not move cards, the animation rig or the interaction proxy.

Save a skin with game: "baccarat", its current fingerprint, a converted body hash and the chosen bindings. Apply it only to existing baccarat:<index> entities. Declare each binding in the skin manifest. Follow the exact manifest and fitting rules and the export workflow.

V2 layout and animation​

Fetch game_skin_contract({"game":"baccarat"}). Use presentation.targets to position the body, complete display and each listed physical control. Control labels and clickable proxies follow their target; action/index/seat identity stays the same. Numeric idle and result clips are supported. Its result-motion channels are card_deal. Use the per-result progress and zero endpoint offsets described in the contract. Reference dimensions above describe the neutral layout before v2 placement. See the exact fields, transforms and limits.