ORK Framework Logo - RPG Editor for Unity
  • ORK 4 BETA
  • Features
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK

ORK 3 Documentation

  • Getting Started
    • Introduction
    • First Steps
    • Game Starters
    • Components Overview
    • Player/Camera Controls
    • Game Over
    • Support: Sending Test Projects
  • Editor
    • Editor Overview
    • Base/Control Section
    • Game Section
    • UI Section
    • Templates Section
    • Status Section
    • Inventory Section
    • Combatants Section
    • Battles Section
  • Features
    • Animations
    • Areas & Teleports
    • Combatant Triggers
    • Control Maps
    • Difficulties
    • Factions
    • Formations
    • Formula Nodes
    • Logs
    • Loot
    • Move AI
    • Quests
    • Research Trees
    • Schematic Nodes
    • Shortcut Slots
  • Status System
    • Status Values
    • Status Effects
    • Attack/Defence Modifiers
    • Abilities
    • Combatants
    • Classes
    • Status Bonuses
    • Status Conditions
  • Inventory System
    • Inventory System Overview
    • Currencies
    • Items
    • Equipment
    • AI Behaviours/Rulesets
    • Crafting Recipes
    • Shops
  • Battle System
    • Battle Systems
    • Adding Battles to Scenes
    • Calculating Action Results
    • Battle Menus
    • Battle AI
    • Battle AI Nodes
    • Battle Ranges
    • Battle Camera
    • Target Selection
    • Battle Spots
    • Battle Texts
    • Battle End & Loot Dialogues
    • Action Combos
    • Damage Types
    • Cursor Prefab Components
    • Grid Battles
    • Adding Battle Grids to Scenes
    • Battle Grid Highlights
    • Battle Grid Formations
  • UI System
    • UI System Overview
    • Start Menu
    • Option Categories
    • Menu Screens
    • Notifications
    • Combatant Selections
    • Quantity Selections
    • Text Display Settings
    • Cursor Settings
    • Console (In-Game)
    • Menu Requirements
    • HUDs: Content Providers
    • HUDs: Conditions
    • HUDs: Click Actions
    • HUDs: Text Content
    • HUDs: Value Bar Content
    • HUDs: Status Values
    • HUDs: Status Effects
    • HUDs: Attack Modifiers
    • HUDs: Defence Modifiers
    • HUDs: Shortcuts
    • HUDs: Abilities
    • HUDs: Equipment
    • HUDs: Class Slots
    • HUDs: AI Behaviours
    • HUDs: AI Rulesets
    • HUDs: Quests
    • Timebar HUD
  • Scripting
    • Scripting Overview
    • Access Handler
    • Code Extensions
    • Custom Settings
    • Custom Targeting
    • Combatant Scripting
    • Custom Nodes
    • Custom Component Save Data

ORK 3 Tutorials

  • 2D RPG Quickstart
    • START 2D RPG Quickstart
    • 01 Initial Setup
    • 02 Player Setup
    • 03 Music & Scenes
    • 04 UI System Setup
    • 05 UI Boxes
    • 06 Flying Texts
    • 07 Status Values
    • 08 Status Effects
    • 09 First Abilities
    • 10 Fighter Setup
    • 11 First Enemies & Battle AI
    • 12 Battle System Setup
    • 13 Animating Battle Start and End
    • 14 Random Battles
    • 15 Animating Actions
    • 16 Player Battle HUD
    • 17 Elemental Attacks
    • 18 Animating More Actions
    • 19 Inventory & Loot
    • 20 Equipment
    • 21 Loot, Start Equipment & Viewers
    • 22 Magic Abilities
    • 23 Caster Setup
    • 24 More Enemies
    • 25 Start Menu & Save Games
    • 26 Menu Screens
    • 27 Interactions
    • 28 Item Collectors
    • END 2D RPG Quickstart
  • 3D RPG Quickstart
    • START 3D RPG Quickstart
    • 01 Initial Setup
    • 02 Player Setup
    • 03 Music & Scenes
    • 04 UI System Setup
    • 05 UI Boxes
    • 06 Flying Texts
    • 07 Status Values
    • 08 Status Effects
    • 09 First Abilities
    • 10 Fighter Setup
    • 11 First Enemies & Battle AI
    • 12 Battle System Setup
    • 13 Animating Battle Start and End
    • 14 Random Battles
    • 15 Animating Actions
    • 16 Player Battle HUD
    • 17 Elemental Attacks
    • 18 Animating More Actions
    • 19 Inventory & Loot
    • 20 Equipment
    • 21 Loot, Start Equipment & Viewers
    • 22 Magic Abilities
    • 23 Caster Setup
    • 24 More Enemies
    • 25 Start Menu & Save Games
    • 26 Menu Screens
    • 27 Interactions
    • 28 Item Collectors
    • END 3D RPG Quickstart
  • Status System Setup
    • START Status System Setup
    • 01 Status Values
    • 02 Status Development
    • 03 Attack/Defence Modifiers
    • 04 Status Effects
    • 05 Formulas
    • 06 Ability & Item Types
    • 07 Abilities Part 1: Attacks
    • 08 Abilities Part 2: Support & Sabotage
    • 09 Abilities Part 3: Elemental Magic
    • 10 Items
    • 11 Equipment Part 1: Slots & Slot Set Templates
    • 12 Equipment Part 2: Weapons
    • 12.5 (Optional) Equipment Part 2.5: Weapons
    • 13 Equipment Part 3: Shields, Armor & Accessories
    • 13.5 (Optional) Equipment Part 3.5: Shields, Armor & Accessories
    • 14 Equipment Part 4: Available Equipment Templates
    • 15 Loot
    • 16 Battle AIs
    • 17 Combatants Part 1: General Settings
    • 18 Combatants Part 2: Players
    • 19 Combatants Part 3: Enemies
    • 20 Combatant Groups
    • END Status System Setup
  • 3D RPG Playground
    • START 3D RPG Playground
    • 01 Player Setup
    • 02 Start Menu
    • 03 First Interaction
    • 04 Music
    • 05 Areas
    • 06 Collecting Items
    • 07 Displaying Equipment
    • 08 Combatant Prefabs, Icons & Portraits
    • 09 Combatant Animations
    • 10 Camera Positions
    • ANIM 01 Battle Start/End Schematics
    • ANIM 02 Use, Cast & Camera
    • ANIM 03 Abilities & Items
    • ANIM 04 Physical Attacks
    • ANIM 05 Special Actions
    • BATTLE 01 Battle Menu
    • BATTLE 02 Prepare for Battle
    • TURN 01 Turn Based Setup
    • TURN 02 Turn Order HUD
    • ATB 01 Active Time Setup
    • ATB 02 Cast Times
    • ATB 03 Timebar HUD
    • BATTLE 03 The First Battle
    • BATTLE 04 Hunting Move AI
    • BATTLE 05 Spawning Combatants
    • 11 Save Games
    • MENU 01 UI Boxes
    • MENU 02 Template HUDs
    • MENU 03 Overview Menu
    • MENU 04 Menu Screens
    • 12 Shop
    • BATTLE 06 Random Battles
    • DUNGEON 01 Enter the Dungeon
    • DUNGEON 02 The Trapdoor
    • DUNGEON 03 Enemies on Level 1 & 2
    • DUNGEON 04 Traps on Level 3
    • DUNGEON 05 Going Deeper
    • 13 Bestiary (+MENU+ANIM)
    • QUEST 01 Hunting Quests (+MENU)
    • QUEST 02 Guard NPC
    • QUEST 03 Forest Ruin Cheese
    • QUEST 04 Witch NPC with Cheese
    • QUEST 05 Quest Mark HUDs
    • 14 Research Trees (+MENU)
    • CRAFT 01 Crafting Materials
    • CRAFT 02 Crafting Recipes
    • CRAFT 03 Crafting Menu
    • CRAFT 04 Crafting Proficiency & Critical Crafting
    • CRAFT 05 Materials Loot
    • 15 Changing Choice Dialogue
    • 16 Follow Me!
    • BATTLE 07 Sequence Loot Dialogue
  • 3D Action RPG
    • START 3D Action RPG
    • 01 Status System Setup
    • 02 Player Setup
    • 03 Player Weapon
    • 04 Player Attacks
    • 05 Enemy: Chomper
    • 06 Chomper Attack
    • 07 Hit & Death
    • 08 HUDs
    • 09 Rolling on the Floor
    • 10 Enemy: Spitter
    • 11 Spit Attack
    • 12 Potion
    • 13 Grenade
    • 14 Item HUD
    • 15 Enemy: Grenadier
    • 16 Grenadier Melee Attacks
    • 17 Grenadier Flamethrower
    • 18 Item Drops
    • END 3D Action RPG
  • 2D Grid Battle RPG
    • START 2D Grid Battle RPG
    • 01 Player Setup
    • 02 Prefab & Music Setup
    • 03 Randomizing Combatants
    • 04 UI Setup
    • 05 Battle Start, End & Phase Schematics
    • 06 Battle System Setup
    • 07 Battle Grid Setup
    • 08 Grid Move
    • 09 Forest Battle Grid
    • 10 Battle AI
    • 11 Ability Ranges
    • 12 Death & Use Schematics
    • 13 Attack Schematic
    • 14 Shoot Schematics
    • 15 Battle Selection Interaction
    • END 2D Grid Battle RPG
  • Schematics
    • Simple Start Schematic
    • Battle Start Schematic
    • Battle End Schematic
    • Moving to Target and Back
    • Animating a Base Attack
    • Animating a Magic Ability
    • Animating Target Selection
    • Grid Movement
    • Open and Close UI Animations
    • Flying Text Mover
  • UI Setups
    • Unity UI: Initial Setup
    • Unity UI: TextMesh Pro Setup
    • Unity UI: UI Box
    • Unity UI: Flying Text
    • Unity UI: Dragging Notification
    • Unity UI: Canvas with Screen Space Camera
    • Unity UI: Interaction HUD
    • Unity UI: Simple Player HUD
    • Unity UI: Quest HUD
    • Unity UI: Battle Actions HUD
    • Unity UI: Shortcuts HUD
    • Unity UI: Currency HUD
    • Unity UI: Tooltip HUD
    • Unity UI: Control HUD
    • Unity UI: Attack Modifiers
    • Unity UI: Defence Modifiers
  • Gameplay Bits
    • 2.5D Setup
    • Body Part Weakpoint
    • Click Attack
    • Combining Input Origins
    • Combining Status Value Flying Texts
    • Fun With Flying Text
    • HUD Effects With Conditional Schematics
    • Inventory Containers
    • Local Multiplayer
    • Multi Interaction Controllers
    • Target Selection Lines
    • World Space HUD
    • World Space Dialogue
View Categories
  • Guide
  • ORK 3
  • ORK 3 Documentation
  • Scripting

Scripting Overview

A brief overview on scripting with ORK Framework.

You can find an overview of all available classes in the API documentation.

See the Makinom scripting documentation for all Makinom-related scripting information. E.g. things like schematics or input keys are Makinom functionality and there are a lot of things that can be extended that are also used by ORK features.

When scripting with ORK Framework, either add the GamingIsLove.ORKFramework namespace (using) or implement your class in the GamingIsLove.ORKFramework namespace. In most cases you’ll also need to add Makinom’s namespace GamingIsLove.Makinom to be able to access Makinom functionality (e.g. input keys).

// add ORK Framework namespace
using GamingIsLove.ORKFramework;

// or use ORK Framework namespace
namespace GamingIsLove.ORKFramework
{
	
}

// add Makinom namespace
using GamingIsLove.Makinom;

Please note that some of ORK Framework’s classes are in separate namespaces, e.g. GamingIsLove.ORKFramework.Components is used for all component classes of ORK Framework.

The ORK class #

Most of what you need is accessible through the ORK class (similar to the Maki class for Makinom functionality). It holds references to all ORK data directly referenced by the project (e.g. combatants) and handlers for an easy and centralized access point.

Accessing settings and data #

All individual data list entries are stored as separate assets, only some of them can be accessed through the ORK class due to being directly referenced by the project asset:

  • ORK.ControlMaps
  • ORK.ActionCombos
  • ORK.Classes
  • ORK.Combatants
  • ORK.Factions
  • ORK.Formations
  • ORK.ResearchTrees
  • ORK.ResearchTypes
  • ORK.Areas
  • ORK.AreaTypes
  • ORK.Difficulties
  • ORK.Logs
  • ORK.LogTexts
  • ORK.LogTypes
  • ORK.Quests
  • ORK.QuestTasks
  • ORK.QuestTypes
  • ORK.Teleports
  • ORK.AIBehaviours
  • ORK.AIRulesets
  • ORK.AITypes
  • ORK.CraftingRecipes
  • ORK.CraftingTypes
  • ORK.Currencies
  • ORK.ItemTypes
  • ORK.Items
  • ORK.EquipmentSlots
  • ORK.Equipment
  • ORK.InventoryContainers
  • ORK.Abilities
  • ORK.AbilityTypes
  • ORK.AttackModifiers
  • ORK.DefenceModifiers
  • ORK.StatusEffects
  • ORK.StatusValues
  • ORK.StatusTypes
  • ORK.ConsoleTypes
  • ORK.MenuScreens

E.g. if you want to get a combatant, you can access it like this:

CombatantSetting combatant = ORK.Combatants.Get(index);

index is an int value representing the index of the combatant in the Makinom editor’s list. You can also access them via their GUID (string):

CombatantSetting combatant = ORK.Combatants.Get(guid);

guid is a string value representing the GUID of the data.

Beside data list entries, you can also access the general settings, e.g.:

  • ORK.GameControls
  • ORK.GameSettings

Handlers #

There are multiple handler classes that manage parts of a running game.

Instances of those handlers can be accessed via the ORK class during a running game – some examples:

  • ORK Game Handler: ORK.Game
    The Game Handler manages all in-game related data, e.g. the player, global variables, factions, game time, language, etc.
  • ORK Player Handler: ORK.Game.PlayerHandler
    The ORK Player Handler holds the reference to the player groups.
  • Access Handler: ORK.Access
    The Access Handler is a feature that allows you to inject functionality in many ORK functionality calls.
    Learn more about the access handler feature in this documentation.

Data Assets #

Data of things like combatants, items or input keys are all stored in individual assets.

They are like any regular Unity asset and can be referenced in your custom scripts and components, e.g. an item:

public ItemAsset item;

You can access the settings of an asset via the Settings property, e.g. checking if an item is dropable:

if(item.Settings.dropable)

As mentioned above, only some of the data assets are directly referenced by the project asset and accessible via the central ORK class (or Maki class for Makinom data assets, e.g. input keys). This is due to initializint the project via a game starter also needs to load all references assets, leading to long load times if everything is directly referenced by the project.

Save Games #

You can add custom save data to your save games – see the Makinom custom save data documentation for details.

Additionally, ORK supports saving component data on a combatant’s game object, see the custom component save data documentation for details.

Custom Nodes #

Adding custom nodes to schematics or formulas doesn’t require implementing them in a plugin or ORK/Makinom’s source code – you can just add them in a script file in your Unity project.

You can find more details about custom battle AI node implementations in this documentation.

You can find more details about custom node implementations for schematics and formulas in the Makinom custom nodes documentation.

Schematic Nodes #

Schematic nodes must descend from BaseSchematicNode or any other schematic node class (e.g. BaseSchematicCheckNode for the default Success/Failed slot implementation).

Formula Nodes #

Formula nodes must descend from BaseFormulaNode or any other formula node class (e.g. BaseFormulaCheckNode for the default Success/Failed slot implementation).

Battle AI Nodes #

Battle AI nodes must descend from BaseAINode or any other battle AI node class (e.g. BaseAICheckNode for the default Success/Failed slot implementation).

Code Extensions #

You can extend many of ORK Framework’s type selections and settings with custom implementations by simply adding new scripts descending from a base type class.

Learn more in the code extension documentation.

For extending Makinom functionality, see the Makinom code extension documentation.

Source Code Project #

The full source code included in ORK Framework’s full/paid version is a Visual Studio 2017 project and should be ready to use out of the box.

The required references to Unity DLLs and functionality are already set up (the DLLs are included in the project’s bin/References folders). If you want to use different Unity versions than provided, just replace the references with the libraries you want to use.

Scripting
Table of Contents
  • The ORK class
    • Accessing settings and data
    • Handlers
  • Data Assets
  • Save Games
  • Custom Nodes
    • Schematic Nodes
    • Formula Nodes
    • Battle AI Nodes
  • Code Extensions
  • Source Code Project
Sitemap
  • ORK 4 BETA
  • Features
  • Showcase
  • Guide
    • Documentation
    • Tutorials
    • API
  • ORK 2 Hub
    • Tutorials
    • Plugins
    • API
  • Support
  • Forum
  • Get ORK
  • Contact
  • Blog
  • Makinom
  • gamingislove.com
Categories
  • News (73)
  • ORK 2 (137)
    • Tutorial (137)
      • Game tutorial (50)
      • Gameplay (32)
      • How-to (55)
  • Release (156)
Search

© 2015 Gaming is Love e.U.

Disclosure: This site may contain affiliate links, which means I may receive a commission if you click a link and purchase something that I have recommended. While clicking these links won’t cost you any money, they will help me fund my development projects while recommending great assets!