Skip to content

Getting Started with Jungle

Jungle handles the plumbing so plugins can focus on gameplay. Need a speed that ramps up over time? A transfer that triggers on a button press? A drop that only happens when a slot is free? Jungle lets you configure all of that in the Inspector - pick the pieces you need, wire them together, and hit Play.

Jungle ships automatically as a dependency of Jungle plugins like Octoputs. It is not sold separately.


Installation

When you import a Jungle plugin (e.g., Octoputs) from the Unity Asset Store, the Jungle Core packages are included automatically. No extra steps required.

Via Jungle Hub

Once any Jungle plugin is installed, you can manage individual packages through the Jungle Hub editor window:

  1. Open Window > Jungle > Jungle Hub
  2. Browse available packages
  3. Click Install or Update next to any package you need

Custom Scoped Registry

Jungle packages are hosted on a custom scoped registry at registry.jungleteam.org. The Jungle Hub configures this registry in your project's Packages/manifest.json automatically. If you manage package sources manually, ensure the registry is listed.


Package Overview

Jungle is split into focused packages so you only pull in what you need. Here is the full catalog:

Package What It Gives You When You Need It
jungle.core Foundation tools and the Jungle Hub window Always - every other package depends on it
jungle.math Math tools for numbers and curves Any numeric calculations or math-driven behavior
jungle.objects Configurable GameObject and Component references Referencing GameObjects or Components as swappable sources
jungle.spatial Position, rotation, splines, and spatial constraints Working with positions, orientations, or spatial relationships
jungle.physics Physics queries, Rigidbody helpers, and raycasting Physics-driven interactions or queries
jungle.graphics Color manipulation and material control Color effects, material property changes
jungle.events Input events, timers, callbacks, and reactive triggers Triggering behavior from input, timers, or custom events
jungle.data Runtime and persistent data storage Data stores and databases
jungle.animation Animator-driven values and animation integration Reading or driving Animator parameters
jungle.audio Audio playback and audio-driven values Audio-related behaviors
jungle.2d 2D-specific tools and spatial helpers 2D projects or 2D-specific interactions
jungle.state Save and restore object state Persisting and restoring state across sessions

What Jungle Provides

At a high level, Jungle gives you four things:

  1. Configurable values - Instead of hardcoding a speed or a position, make it a configurable source. The user picks where the value comes from - a constant, a curve, an Animator parameter, a shared asset - and the component just works. See Value Providers.

  2. Composable operations - Any operation that takes time (a lerp, a transfer, an animation) and any instant action (set a parent, fire an event) share the same lifecycle. Swap any operation for any other. See Processes & Commands.

  3. Events and conditions - Wire triggers (button presses, timers, collisions) to operations, and stack conditions (distance checks, capacity limits, state checks) to control when things happen. See Events and Conditions.

  4. Visual Inspector setup - Pick behaviors from categorized popup menus, organize fields into sections and tabs, and see live values at a glance. See Understanding the Inspector UI and The Class Selection System.


Next Steps

Topic What You Will Learn
Understanding the Inspector UI How Jungle's custom Inspector rendering works
The Class Selection System How polymorphic fields and the type picker operate
Value Providers Configurable data sources for any typed value
Processes & Commands Multi-frame and instant operations
Conditions Boolean gating for processes and filters
Events Trigger sources that drive behavior