Serialize Anything

We've built a solid and extensible serialization protocol, tailored to Unity, that enables you to effortlessly leverage standard OOP approaches like polymorphism, references and null values.

80+ New Attributes

Make your editors user friendly with no effort, using only attributes. No need to inherit from a BaseInspector. Odin Inspector works right off the bat.

Effortless Integration

Odin is easy to install and designed to integrate effortlessly into a pre-existing workflow, causing a minimum of on-boarding hassle.

Intuitive API

We put a lot of effort into making our API's as intuitive to use as possible. We believe that the easy way of doing things should also be the right way of doing things. All of our API's are well documented, StyleCop compliant, highly optimized and extendable.

Extendable

A powerful and flexible API lets you easily extend and modify how the inspector is drawn. Create entirely new property group types and custom drawers in moments!

Full Source Code Access

Never be confused when something doesn't work as you expect it to! You can always look anything up in our well-documented source code.

Odin Inspector

Odin Inspector makes it easy for you and your team to enjoy the benefits of a powerful and user-friendly inspector, without ever having to write a single custom editor.

Writing games sometimes require complex data-structures that are beyond Unity's serialization capabilities. This can force you into bad situations, quick hack solutions, and a code-base that quickly becomes harder to maintain.

Odin Inspector comes with a robust serialization system tailored to Unity - no more doing it quick and dirty; we'll do it for you, and do it right.

Serialize Anything!

A simple, straight-forward data structure is often the way best way to go, but there are times where you simply need to serialize that complex generic, polymorphic type with cyclic references. This is where our custom serialization protocol comes into play.

You can either inherit from one of our many in-built classes, such as SerializedMonoBehaviour and SerializedScriptableObject, or add a few lines of code to your existing classes.

  • Full support for polymorphism, cyclic references and null values
  • Full prefab support
  • Serialize delegates
  • Built in Binary and Json Formatters
  • High performance and close to zero garbage generation
  • Follows all Microsft's .NET serialization standards
  • Customize serialization by creating your own type formatters and data formats
  • Supports external references to objects such as Unity objects and assets.
  • Special editor-only node format is mergeable via source control

Create feature-rich editors

using only attributes

    Inline Editors
    Custom Tables
    Table Lists
    Custom Value Drawers
    Combine Group Attributes
    Input Validation
    Scene Validation
    Enum Toggle buttons
    Dictionaries
    Tab Groups
    Horizontal Group
    Color Palettes
    Min Max Slider and Lists
    Member References
    Asset Lists
    Serialize Anything
    Inline Editors

    Input Validation

    Bugs are often caused when a designer doesn't know how a component works and accidentally sets an invalid value. This causes many errors, and can waste a lot of time that might have been productive while they look it up in a manual or consult with the developer who wrote the component.

    Odin lets you easily write custom validation logic to ensure only correct values are set, and lets you give sensible feedback right in the inspector. Providing informative warnings, or simply disallowing invalid values, goes a long way towards minimizing the amount of potential bugs and smoothing out your workflow.

    Odin also provides a Scene Validation Window, which lets you scan entire scenes for errors, warnings, missing references etc.

    • Scan entire scenes for custom errors and warnings.
    • Write custom input validation logic
    • Prevent invalid values from being set
    • Give designers useful feedback in the inspector
    • Provide custom conditional UI messages for any property
    • Use built-in attributes such as SceneObjectsOnly and AssetsOnly

    Powerful Lists

    All arrays and lists are drawn by our powerful list drawer.

    • Drag and drop, insert and delete individual items
    • Cross-list and even cross-window item dragging
    • Paging for lists with many items
    • Infinite nested list drawing
    • Fully customizable though settings and / or using attributes

    Tables

    Draw lists, arrays and two-dimentional arrays as tables.

    • Insert, remove, duplicate, drag and drop columns and rows
    • Adjust column rows using the TableColumnWidth attribute
    • Adjustable paging for tables with many items
    • Custom table-cell drawing with built-in support for multi-selection and undo
    • Custom cell drawing
    • Group multiple properties together in a single column using group attributes

    Dictionaries

    Dictionaries can now finally be drawn and edited directly in the inspector.

    • Can draw all dictioanry types in the inspector
    • Fully serialized just by inheriting from SerializedMonoBehaviour
    • Supports prefab modifications

    Customizable Layout

    Properly ordering, labeling, hiding and grouping your properties helps the user to faster find what they are looking for.

    • Group properties into Tab Groups, Foldout Groups, Toggle Groups, Horizontal Groups, Button Groups and more
    • Hide or show or enable or disable properties based on your custom conditions
    • Mark properties readonly or disabled
    • Custom property ordering
    • Hide or rename labels entirely
    • Display custom messages based on values
    • Easily draw custom GUI before or after properties

    Asset Lists

    Instead of making your designers search through your project to find the right assets or prefabs to reference, simply specify in the code which assets the designer can choose from and they will be presented with a list of choices that they can toggle in or out of the list.

    If you use the AssetList on a list or array type, it will display you a list of all filtered that lets you toggle assets in and out of the list, otherwise it will give you a quick way shuffle through all filtered values.

    • Filter the asset list by folder location, tags, layers, name prefixes, etc...
    • Only shows assets assignable to your list type
    • Works on all asset types, including components on prefabs.
    • Auto populate mode that automatically adds all relevant assets in the list
    • Easily create new assets that meet your constraints

    Value Dropdowns

    One way of easily preventing invalid values from being set, is by providing the user with a list of valid values to choose from.

    The ease of dropdown selection is no longer limited to just enums. Odin lets you create a dropdown with value of any type to choose from.

    • Create dropdowns for any type
    • Manually specify name for items that do not implement .ToString() properly

    Inline Editor

    The Inline Editor attribute lets you render an editor for any UnityEngine.Object reference directly inside the inspector.

    It can draw the editor, the file header, and the interactable object preview, which all can be customized and enabled or disabled through the attribute.

    Color Palettes

    Define project-based color palettes for your whole team to share, and mark relevant color properties to show a color palette right next to the color picker.

    • Works with all Unity's Color types
    • Easily create new custom color palettes
    • Palettes are stored as a project asset, making the entire team share the same color palettes

    Fully Customizable

    We make it easy to configure how you want the inspector to act in your project, and trivial to create new configurations for your own custom drawer types.

    By default, Odin generates editors for all your custom Unity types. This can be a bit much for some people, so we've added the ability to selectively enable or disable Odin for specific types or even namespaces. We've also provided multiple attributes which tell whether or not Odin should draw any given class or property...

    • Customize the inspector to suit your needs and preferences
    • Create integrated configurations for your own drawers
    • Full control over Odin editor generation.

    Odin Inspector and Serializer



    Sign up to our publisher's newsletter below to receive the latest Odin news!