4 IN LINE — 3D INTERACTIVE BOARD GAME | Mole Resources
Bring the classic four-in-a-row into the world as a physical, placeable object. Players carry the board as an inventory item, place it anywhere with a live preview, and play against another player or a built-in AI opponent — with everyone nearby watching discs drop in real time.
Trailer: Youtube
Documentation: https://mole-resource.gitbook.io/mole-resource-docs/
Support: Discord
━━━━━━━━━━━━━━━━━━━━━━━━━━
KEY FEATURES
Real gravity gameplay — aim at a column, drop a disc, watch it fall into place with a smooth animation. A translucent disc in your own colour hovers above the column you're targeting, so you always know where it lands
Player vs Player — two seats, turn-based, works for any two players standing at the same board
Player vs AI — alpha-beta search bot with three difficulty levels. It always takes an immediate win and always blocks yours, and plays for the centre columns like a real opponent. Players pick the difficulty themselves at the start of a solo match, directly from the same on-screen button bar used for camera controls — no extra menu
Placeable item — put the board anywhere with a live translucent preview; scroll to rotate, click to confirm, pick it back up anytime
Full persistence — board position and grid state are stored in the database and survive restarts
Real multiplayer sync — seated players always see moves instantly; optional live mode streams every move to nearby spectators too
Live score tracking with a proper rematch flow — both players have to agree before a new round starts; a mid-game reset is instant
Smart anti-AFK turn timer — only counts down while a player actually has the ability to move (camera locked on the board), not while they're simply looking around
Configurable disc colours — swap the black and white disc models, and choose which colour the AI plays
Housing support — instance system with a two-export integration for instance and coords based housing scripts
Server-owned boards — define permanent public boards in the config that can't be picked up
━━━━━━━━━━━━━━━━━━━━━━━━━━
BUILT SERVER-FIRST
Every move validated server-side — turn order, column availability, landing cell and win detection, no client-side trust. The client sends a column number, never a board state
Distance validation on every interaction — remote exploit attempts are rejected
Event throttling and an entry-timeout watchdog — a seat can never get permanently stuck if a client fails to load
Distance-based object streaming — boards outside a configurable radius are never spawned as objects at all, so a server with hundreds of placed boards doesn't choke the client's object pool; hysteresis prevents flicker at the render distance edge, spawning is budget-limited per frame
Clean resource lifecycle — no leftover entities after restarts
━━━━━━━━━━━━━━━━━━━━━━━━━━
INTERACTION & TARGETING
Built-in proximity prompts with configurable keys, or
ox_target / sleepless_interact integration — Play, Play vs AI, and Pick up options directly on the board object
━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFIGURATION & COMPATIBILITY
Inventory: ox_inventory, QBCore, or ESX — one config option
Notifications: ox_lib, ESX, mythic_notify, or QB-Core
Every option in a single config file — models, colours, camera, streaming, timeouts and gameplay tuning, all outside the escrowed code
Fully translatable — every player-facing string lives in one locale table
Discord logging — board placement, pickup, and admin actions via webhook, including the player's license and in-character name
Admin commands — list all boards, force-remove a board
━━━━━━━━━━━━━━━━━━━━━━━━━━
REQUIREMENTS
oxmysql (required)
One inventory: ox_inventory / QBCore / ESX (required)
ox_lib / mythic_notify / QB-Core — optional (notifications)
ox_target / sleepless_interact — optional (target interaction)
Custom board & disc props included — no extra prop pack needed
━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT YOU GET
Complete resource with custom 3D props
SQL file included — one-step database setup
Documentation — installation, configuration, housing integration, FAQ