inkgd
Implementation of inkle's Ink in pure GDScript for Godot, with editor support.
File Explorer
Download Latest Version (.zip)- bug_report.md
- continuous-integration.yml
- PULL_REQUEST_TEMPLATE.md
- function_template.txt
- script_template.txt
- AnonymousPro-Bold.ttf
- AnonymousPro-BoldItalic.ttf
- AnonymousPro-Italic.ttf
- AnonymousPro-Regular.ttf
- CourierPrime-Bold.ttf
- CourierPrime-BoldItalic.ttf
- CourierPrime-Italic.ttf
- CourierPrime-Regular.ttf
- LobsterTwo-Bold.ttf
- LobsterTwo-BoldItalic.ttf
- LobsterTwo-Italic.ttf
- LobsterTwo-Regular.ttf
- OFL.txt
- BottomPanelShortcuts.gd
- BottomPanelShortcuts.tscn
- gut_config_gui.gd
- GutBottomPanel.gd
- GutBottomPanel.tscn
- GutRunner.gd
- GutRunner.tscn
- open_editors.gd
- ShortcutButton.gd
- ShortcutButton.tscn
- autofree.gd
- comparator.gd
- compare_result.gd
- diff_formatter.gd
- diff_tool.gd
- doubler.gd
- get_native_script.gd
- gut.gd
- gut_cmdln.gd
- gut_config.gd
- gut_plugin.gd
- GutScene.gd
- GutScene.tscn
- hook_script.gd
- icon.png
- icon.png.import
- junit_xml_export.gd
- LICENSE.md
- logger.gd
- method_maker.gd
- one_to_many.gd
- optparse.gd
- orphan_counter.gd
- parameter_factory.gd
- parameter_handler.gd
- plugin.cfg
- plugin_control.gd
- printers.gd
- result_exporter.gd
- signal_watcher.gd
- source_code_pro.fnt
- spy.gd
- strutils.gd
- stub_params.gd
- stubber.gd
- summary.gd
- test.gd
- test_collector.gd
- thing_counter.gd
- UserFileViewer.gd
- UserFileViewer.tscn
- utils.gd
- ink_compilation_configuration.gd
- ink_execution_configuration.gd
- ink_execution_result.gd
- ink_compiler.gd
- ink_configuration_tester.gd
- ink_external_command_executor.gd
- ink_configuration.gd
- ink_csharp_validator.gd
- ink_editor_interface.gd
- compile.svg
- ink_player.svg
- ink_json_import_plugin.gd
- ink_resource.gd
- ink_source_import_plugin.gd
- ink_progress_dialog.gd
- ink_progress_dialog.tscn
- ink_rich_dialog.gd
- ink_rich_dialog.tscn
- ink_configuration_panel.gd
- ink_configuration_panel.tscn
- ink_preview_panel.gd
- ink_preview_panel.tscn
- empty_state_container.tscn
- ink_story_configuration.gd
- ink_story_configuration.tscn
- ink_story_panel.gd
- ink_story_panel.tscn
- ink_bottom_panel.gd
- ink_bottom_panel.tscn
- .gdignore
- ink_template.gd
- ink_template_signals.gd
- ink_editor_plugin.gd
- .gitkeep
- InkBridger.cs
- InkPlayer.cs
- ink_base.gd
- ink_object.gd
- choice.gd
- choice_point.gd
- container.gd
- control_command.gd
- divert.gd
- glue.gd
- native_function_call.gd
- tag.gd
- variable_assignment.gd
- variable_reference.gd
- void.gd
- error.gd
- push_pop.gd
- function_result.gd
- key_value_pair.gd
- state_element.gd
- stopwatch.gd
- story_error.gd
- story_error_metadata.gd
- string_set.gd
- string_writer.gd
- try_get_result.gd
- utils.gd
- ink_list_item.gd
- ink_list.gd
- list_definition.gd
- list_definitions_origin.gd
- ink_runtime.gd
- json.gd
- native_function_call.gd
- pointer.gd
- bool_value.gd
- divert_target_value.gd
- float_value.gd
- int_value.gd
- list_value.gd
- string_value.gd
- value.gd
- value_type.gd
- variable_pointer_value.gd
- callstack.gd
- debug_metadata.gd
- flow.gd
- ink_path.gd
- profiler.gd
- search_result.gd
- simple_json.gd
- state_patch.gd
- story.gd
- story_state.gd
- variables_state.gd
- .gitignore
- ink_player.gd
- ink_player_factory.gd
- LICENSE
- plugin.cfg
- runtime.gd
- gdscript.py
- ink_panel.gif
- ink_panel_configuration.png
- ink_panel_configuration_mono.png
- ink_panel_configuration_recompilation_mode.png
- ink_panel_configuration_validity.png
- ink_panel_empty.png
- ink_panel_one_story.png
- ink_panel_preview.png
- ink_panel_preview_no_stories.png
- ink_panel_preview_playing.png
- ink_panel_preview_playing_2.png
- ink_panel_preview_story_selection.png
- ink_panel_stories.png
- ink_panel_stories_watched.png
- ink_panel_three_stories.png
- import_plugins.rst
- index.rst
- ink_panel.rst
- ink_runner_threads.png
- choosing_between_inkgd_and_godot_ink.rst
- differences_between_api.rst
- error_management.rst
- migrating_to_godot_mono.rst
- performance.rst
- using_inkplayer.rst
- class_inkfunctionresult.rst
- class_inklist.rst
- class_inkplayer.rst
- class_inkruntime.rst
- index.rst
- asset_lib.png
- asset_lib_download.png
- asset_lib_file_section.png
- asset_lib_inkgd.png
- asset_lib_successful_installation.png
- auto_load_add.png
- auto_load_file_button.png
- auto_load_runtime_added.png
- file_system_dock.png
- flowchart.svg
- project_settings_plugin_tab.png
- configuration.rst
- installation.rst
- introduction.rst
- inkgd.png
- wild_wits_logo.webp
- conf.py
- index.rst
- .gdignore
- make.bat
- Makefile
- requirements.txt
- Poppins-Medium.tres
- Poppins-Medium.ttf
- Vollkorn-Regular.tres
- Vollkorn-Regular.ttf
- back_button_disabled.png
- back_button_disabled.png.import
- back_button_hover.png
- back_button_hover.png.import
- back_button_normal.png
- back_button_normal.png.import
- back_button_pressed.png
- back_button_pressed.png.import
- button_disabled.png
- button_disabled.png.import
- button_focus_hover.png
- button_focus_hover.png.import
- button_normal.png
- button_normal.png.import
- button_pressed.png
- button_pressed.png.import
- inkgd.png
- inkgd.png.import
- inkgd_the_intercept.png
- inkgd_the_intercept.png.import
- spinner.png
- spinner.png.import
- transparent.png
- transparent.png.import
- crime_scene.ink
- crime_scene.ink.import
- crime_scene.ink.json
- crime_scene.ink.json.import
- ld41_emoji.ink
- ld41_emoji.ink.import
- ld41_emoji.ink.json
- ld41_emoji.ink.json.import
- bob.ink
- bob.ink.import
- credits.ink
- credits.ink.import
- fishmen.ink
- fishmen.ink.import
- totem1.ink
- totem1.ink.import
- totem2.ink
- totem2.ink.import
- witch.ink
- witch.ink.import
- not_a_halloween_game.ink
- not_a_halloween_game.ink.import
- not_a_halloween_game.ink.json
- not_a_halloween_game.ink.json.import
- the_intercept.ink
- the_intercept.ink.import
- the_intercept.ink.json
- the_intercept.ink.json.import
- back_button_margin_container.gd
- back_button_margin_container.tscn
- button.tscn
- choice_container.gd
- choice_container.tscn
- label.tscn
- profiler.gd
- story_player.gd
- story_player.tscn
- crime_scene.tscn
- main.gd
- main.tscn
- the_intercept.tscn
- icon-1024.png
- icon-1024.png.import
- icon-120.png
- icon-120.png.import
- icon-76.png
- icon-76.png.import
- icon.png
- icon.png.import
- error_and_exceptions.ink.json
- error_and_exceptions.ink.json.import
- flow.ink.json
- flow.ink.json.import
- functions.ink.json
- functions.ink.json.import
- ink_error.ink.json
- ink_error.ink.json.import
- ink_list_roundtrip.ink.json
- ink_list_roundtrip.ink.json.import
- variable_observation.ink.json
- variable_observation.ink.json.import
- variables.ink.json
- variables.ink.json.import
- external_binding.ink.json
- game_ink_back_and_forth.ink.json
- lookup_safe_or_not.ink.json
- lookup_safe_or_not_with_post_glue.ink.json
- variable_observer.ink.json
- false_plus_false.ink.json
- list_hasnt.ink.json
- not_one.ink.json
- not_true.ink.json
- three_greater_than_one.ink.json
- true.ink.json
- true_equals_one.ink.json
- true_plus_one.ink.json
- true_plus_true.ink.json
- two_plus_true.ink.json
- floor_ceiling_and_casts.ink.json
- read_count_across_callstack.ink.json
- read_count_across_threads.ink.json
- read_count_dot_separated_path.ink.json
- read_count_variable_target.ink.json
- turns.ink.json
- turns_since.ink.json
- turns_since_nested.ink.json
- turns_since_with_variable_target.ink.json
- visit_count_bug_due_to_nested_containers.ink.json
- visit_counts_when_choosing.ink.json
- call_stack_evaluation.ink.json
- callstack_evaluation.ink.json
- clean_callstack_reset_on_path_choice.ink.json
- choice_count.ink.json
- choice_diverts_to_done.ink.json
- choice_thread_forking.ink.json
- choice_with_brackets_only.ink.json
- conditional_choices.ink.json
- default_choices.ink.json
- default_simple_gather.ink.json
- fallback_choice_on_thread.ink.json
- gather_choice_same_line.ink.json
- has_read_on_choice.ink.json
- logic_in_choices.ink.json
- non_text_in_choice_inner_content.ink.json
- once_only_choices_can_link_back_to_self.ink.json
- once_only_choices_with_own_content.ink.json
- should_not_gather_due_to_choice.ink.json
- state_rollback_over_default_choice.ink.json
- sticky_choices_stay_sticky.ink.json
- various_default_choices.ink.json
- all_switch_branches_fail_is_clean.ink.json
- conditionals.ink.json
- else_branches.ink.json
- empty_multiline_conditional_branch.ink.json
- trivial_condition.ink.json
- basic_tunnel.ink.json
- compare_divert_targets.ink.json
- complex_tunnels.ink.json
- divert_in_conditional.ink.json
- divert_targets_with_parameters.ink.json
- divert_to_weave_points.ink.json
- done_stops_thread.ink.json
- path_to_self.ink.json
- same_line_divert_is_inline.ink.json
- tunnel_onwards_after_tunnel.ink.json
- tunnel_onwards_divert_after_with_arg.ink.json
- tunnel_onwards_divert_override.ink.json
- tunnel_onwards_to_variable_divert_target.ink.json
- tunnel_onwards_with_param_default_choice.ink.json
- tunnel_vs_thread_behaviour.ink.json
- arithmetic.ink.json
- basic_string_literals.ink.json
- evaluating_function_variable_state_bug.ink.json
- evaluating_ink_functions_from_game.ink.json
- evaluating_ink_functions_from_game_2.ink.json
- evaluation_stack_leaks.ink.json
- factorial_by_reference.ink.json
- factorial_recursive.ink.json
- increment.ink.json
- literal_unary.ink.json
- arithmetic_2.ink.json
- list_comparison.ink.json
- implicit_inline_glue.ink.json
- implicit_inline_glue_b.ink.json
- implicit_inline_glue_c.ink.json
- left_right_glue_matching.ink.json
- simple_glue.ink.json
- knot_do_not_gather.ink.json
- knot_stitch_gather_counts.ink.json
- knot_thread_interaction.ink.json
- knot_thread_interaction_2.ink.json
- contains_empty_list_always_false.ink.json
- empty_list_origin.ink.json
- empty_list_origin_after_assignment.ink.json
- list_basic_operations.ink.json
- list_mixed_items.ink.json
- list_random.ink.json
- list_range.ink.json
- list_save_load.ink.json
- more_list_operations.ink.json
- logic_lines_with_newlines.ink.json
- multiline_logic_with_glue.ink.json
- nested_pass_by_reference.ink.json
- print_num.ink.json
- included_file.ink.json
- included_file_2.ink.json
- included_file_4.ink.json
- empty.ink.json
- end.ink.json
- end2.ink.json
- end_of_content.ink.json
- escape_character.ink.json
- hello_world.ink.json
- identifiers_can_start_with_number.ink.json
- include.ink.json
- nested_include.ink.json
- quote_character_significance.ink.json
- whitespace.ink.json
- multi_flow_basics.ink.json
- multi_flow_save_load_threads.ink.json
- newline_at_start_of_multiline_conditional.ink.json
- newline_consistency_1.ink.json
- newline_consistency_2.ink.json
- newline_consistency_3.ink.json
- newlines_trimming_with_func_external_fallback.ink.json
- newlines_with_string_eval.ink.json
- all_sequence_types.ink.json
- blanks_in_inline_sequences.ink.json
- empty_sequence_content.ink.json
- gather_read_count_with_initial_sequence.ink.json
- leading_newline_multiline_sequence.ink.json
- shuffle_stack_muddying.ink.json
- string_constants.ink.json
- string_contains.ink.json
- string_type_coercion.ink.json
- strings_in_choices.ink.json
- tags.ink.json
- tags_dynamic_content.ink.json
- tags_in_choice.ink.json
- tags_in_seq.ink.json
- tags_on_choice.ink.json
- multi_thread.ink.json
- thread_done.ink.json
- thread_in_logic.ink.json
- top_flow_terminator_should_not_kill_thread_choices.ink.json
- const.ink.json
- multiple_constant_references.ink.json
- set_non_existant_variable.ink.json
- temp_global_conflict.ink.json
- temp_not_found.ink.json
- temp_usage_in_options.ink.json
- temporaries_at_global_scope.ink.json
- variable_declaration_in_conditional.ink.json
- variable_divert_target.ink.json
- variable_get_set_api.ink.json
- variable_pointer_ref_from_knot.ink.json
- variable_swap_recurse.ink.json
- variable_tunnel.ink.json
- warn_variable_not_found_1.ink.json
- warn_variable_not_found_2.ink.json
- conditional_choice_in_weave.ink.json
- conditional_choice_in_weave_2.ink.json
- unbalanced_weave_indentation.ink.json
- weave_gathers.ink.json
- weave_options.ink.json
- weave_within_sequence.ink.json
- .gdignore
- error_and_exceptions.ink
- flow.ink
- functions.ink
- ink_error.ink
- ink_list_roundtrip.ink
- variable_observation.ink
- variables.ink
- external_binding.ink
- game_ink_back_and_forth.ink
- lookup_safe_or_not.ink
- lookup_safe_or_not_with_post_glue.ink
- variable_observer.ink
- false_plus_false.ink
- list_hasnt.ink
- not_one.ink
- not_true.ink
- three_greater_than_one.ink
- true.ink
- true_equals_one.ink
- true_plus_one.ink
- true_plus_true.ink
- two_plus_true.ink
- floor_ceiling_and_casts.ink
- read_count_across_callstack.ink
- read_count_across_threads.ink
- read_count_dot_separated_path.ink
- read_count_variable_target.ink
- turns.ink
- turns_since.ink
- turns_since_nested.ink
- turns_since_with_variable_target.ink
- visit_count_bug_due_to_nested_containers.ink
- visit_counts_when_choosing.ink
- callstack_evaluation.ink
- clean_callstack_reset_on_path_choice.ink
- choice_count.ink
- choice_diverts_to_done.ink
- choice_thread_forking.ink
- choice_with_brackets_only.ink
- conditional_choices.ink
- default_choices.ink
- default_simple_gather.ink
- fallback_choice_on_thread.ink
- gather_choice_same_line.ink
- has_read_on_choice.ink
- logic_in_choices.ink
- non_text_in_choice_inner_content.ink
- once_only_choices_can_link_back_to_self.ink
- once_only_choices_with_own_content.ink
- should_not_gather_due_to_choice.ink
- state_rollback_over_default_choice.ink
- sticky_choices_stay_sticky.ink
- various_default_choices.ink
- all_switch_branches_fail_is_clean.ink
- conditionals.ink
- else_branches.ink
- empty_multiline_conditional_branch.ink
- trivial_condition.ink
- basic_tunnel.ink
- compare_divert_targets.ink
- complex_tunnels.ink
- divert_in_conditional.ink
- divert_targets_with_parameters.ink
- divert_to_weave_points.ink
- done_stops_thread.ink
- path_to_self.ink
- same_line_divert_is_inline.ink
- tunnel_onwards_after_tunnel.ink
- tunnel_onwards_divert_after_with_arg.ink
- tunnel_onwards_divert_override.ink
- tunnel_onwards_to_variable_divert_target.ink
- tunnel_onwards_with_param_default_choice.ink
- tunnel_vs_thread_behaviour.ink
- arithmetic.ink
- basic_string_literals.ink
- evaluating_function_variable_state_bug.ink
- evaluating_ink_functions_from_game.ink
- evaluating_ink_functions_from_game_2.ink
- evaluation_stack_leaks.ink
- factorial_by_reference.ink
- factorial_recursive.ink
- increment.ink
- literal_unary.ink
- arithmetic_2.ink
- list_comparison.ink
- implicit_inline_glue.ink
- implicit_inline_glue_b.ink
- implicit_inline_glue_c.ink
- left_right_glue_matching.ink
- simple_glue.ink
- knot_do_not_gather.ink
- knot_stitch_gather_counts.ink
- knot_thread_interaction.ink
- knot_thread_interaction_2.ink
- contains_empty_list_always_false.ink
- empty_list_origin.ink
- empty_list_origin_after_assignment.ink
- list_basic_operations.ink
- list_mixed_items.ink
- list_random.ink
- list_range.ink
- list_save_load.ink
- more_list_operations.ink
- logic_lines_with_newlines.ink
- multiline_logic_with_glue.ink
- nested_pass_by_reference.ink
- print_num.ink
- included_file.ink
- included_file_2.ink
- included_file_3.ink
- included_file_4.ink
- empty.ink
- end.ink
- end2.ink
- end_of_content.ink
- escape_character.ink
- hello_world.ink
- identifiers_can_start_with_number.ink
- include.ink
- nested_include.ink
- quote_character_significance.ink
- whitespace.ink
- multi_flow_basics.ink
- multi_flow_save_load_threads.ink
- newline_at_start_of_multiline_conditional.ink
- newline_consistency_1.ink
- newline_consistency_2.ink
- newline_consistency_3.ink
- newlines_trimming_with_func_external_fallback.ink
- newlines_with_string_eval.ink
- all_sequence_types.ink
- blanks_in_inline_sequences.ink
- empty_sequence_content.ink
- gather_read_count_with_initial_sequence.ink
- leading_newline_multiline_sequence.ink
- shuffle_stack_muddying.ink
- string_constants.ink
- string_contains.ink
- string_type_coercion.ink
- strings_in_choices.ink
- tags.ink
- tags_dynamic_content.ink
- tags_in_choice.ink
- tags_in_seq.ink
- multi_thread.ink
- thread_done.ink
- thread_in_logic.ink
- top_flow_terminator_should_not_kill_thread_choices.ink
- const.ink
- multiple_constant_references.ink
- set_non_existant_variable.ink
- temp_global_conflict.ink
- temp_not_found.ink
- temp_usage_in_options.ink
- temporaries_at_global_scope.ink
- variable_declaration_in_conditional.ink
- variable_divert_target.ink
- variable_get_set_api.ink
- variable_pointer_ref_from_knot.ink
- variable_swap_recurse.ink
- variable_tunnel.ink
- warn_variable_not_found_1.ink
- warn_variable_not_found_2.ink
- conditional_choice_in_weave.ink
- conditional_choice_in_weave_2.ink
- unbalanced_weave_indentation.ink
- weave_gathers.ink
- weave_options.ink
- weave_within_sequence.ink
- .gdignore
- test_base.gd
- test_exceptions.gd
- test_flow.gd
- test_functions.gd
- test_variables.gd
- test_variables_setter_getter.gd
- test_base.gd
- test_bindings.gd
- test_booleans.gd
- test_builtins.gd
- test_callstack.gd
- test_choices.gd
- test_conditions.gd
- test_diverts.gd
- test_evaluation.gd
- test_extra.gd
- test_glue.gd
- test_knots.gd
- test_lists.gd
- test_logic.gd
- test_misc.gd
- test_multiflow.gd
- test_newlines.gd
- test_sequences.gd
- test_strings.gd
- test_tags.gd
- test_threads.gd
- test_variables.gd
- test_weave.gd
- test_base.gd
- generate_ipsuminious.py
- ipsuminious.ink.tmpl
- performance_test.gd
- performance_test.tscn
- compile_fixtures
- test_ink_item.gd
- test_path.gd
- test_utils.gd
- tests.tscn
- .gitattributes
- .gitignore
- .gut_editor_config.json
- .gutconfig.json
- .inkgd_ink.cfg
- AUTHORS
- build_example
- CHANGELOG.md
- ci_export_presets.cfg
- CONTRIBUTING.md
- default_env.tres
- inkgd.csproj
- inkgd.sln
- LICENSE
- project.godot
- README.md
# Installation Guide
1. Get the code
git clone https://github.com/ephread/inkgd
Downloads the entire project code from GitHub to your computer.
cd inkgd
Moves into the project folder you just downloaded.
2. .NET
Medium RecommendedPrerequisites
dotnet restore
Downloads the packages the project depends on.
dotnet run
Builds the project and runs it immediately.
After dotnet run, check the message or address shown in the terminal.
// repository documentation
Was this content helpful?
(0 ratings)
