Conium

Conium

Mod

Conium is a datapack and script framework for modern Minecraft, it provides very diverse features without Java coding, Conium lets you complete your mods only using datapacks.

Client and server Game MechanicsLibraryManagementOptimization

134 downloads
6 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

Fix bug of fluxia not loaded in '1.0.0-alpha7'.

Conium script

Event types

Add events support:

  1. 'ITEM_USE_ON_ENTITY'
  2. 'ITEM_USED_ON_ENTITY'
  3. 'ITEM_USAGE_TICK'
  4. 'ITEM_USAGE_TICKING'
  5. 'ITEM_INVENTORY_TICK'
  6. 'ITEM_INVENTORY_TICKED'
  7. 'ITEM_STACK_CLICK'
  8. 'ITEM_STACK_CLICKED'

Event args

Add event args:

  1. 'CURSOR_STACK'
  2. 'CLICK_TYPE'
  3. 'SLOT'
  4. 'SLOT_NUMBER'
  5. 'SELECT_STATUS'

Event context

Modified ways to attach forever events, incoming a event type to ConiumEvent constructor and auto attach events, don't attach events manually since this version.

Interaction

In conium '1.0.0-alpha6' will input wrong identity when data-driven interactions, fixed in this version.

Bedrock script

Fluxia can translate for loop and while loop now.

Add type 'Set' for javascript stdlib supporting, must specify a reified argument type otherwise cannot be eval.

Data driven

Add item templates:

  1. 'force_mining_speed'

Versions

Update to minecraft version '1.21.4'. Update to kotlin version '2.1.0'.

Bug fixes

Fix bug of crash client when client player interaction to synchronized data in '1.0.0-alpha6'.

Others

Add character banner in logging. Performance optimizations.

Conium script

Event types

Add events support:

  1. 'BREAKING_BLOCK'
  2. 'BROKEN_BLOCK'
  3. 'ENTITY_DAMAGE'
  4. 'ENTITY_DAMAGED'
  5. 'ENTITY_DIE'
  6. 'ENTITY_DEAD'.
  7. 'ENTITY_TICK'
  8. 'ENTITY_TICKED'
  9. 'ITEM_USED_ON_BLOCK'
  10. 'SERVER_TICK_TAIL'
  11. 'FLUID_SCHEDULE_TICK'
  12. 'FLUID_SCHEDULE_TICKED'
  13. 'BLOCK_SCHEDULE_TICK'
  14. 'BLOCK_SCHEDULE_TICKED'
  15. 'SHULKER_BOX_OPENING'
  16. 'SHULKER_BOX_OPENED'
  17. 'SHULKER_BOX_CLOSING'
  18. 'SHULKER_BOX_CLOSED'
  19. 'CHEST_OPENING'
  20. 'CHEST_OPENED'
  21. 'CHEST_CLOSING'
  22. 'CHEST_CLOSED'
  23. 'TRAPPED_CHEST_OPENING'
  24. 'TRAPPED_CHEST_OPENED'
  25. 'TRAPPED_CHEST_CLOSING'
  26. 'TRAPPED_CHEST_CLOSED'

Event context

  1. The 'identity' of event context that input to 'arising' and 'presaging' have actual type now.
  2. Add more dynamic args transformer and more arg types
  3. Add method 'preRequest' in 'ConiumEventContextBuilder', used to make 'presage' trigger.
  4. Methods 'request' in 'ConiumEventContextBuilder' can input two lambdas now, first is 'arise', seconds is 'presage'.
  5. Add 'target' and 'targetTo' method in 'ConiumEventContext' used to filter the identity to trigger context.

Data driven interactions

See the samples, the 'glint' key in data define and interaction.kts script.

This sample let an item change glint status in hand, when player is creative mode, use the item on block will make this item be glint, otherwise then be not glint.

Data driven

Supported block templates:

  1. 'piston_behavior'
  2. 'walk_velocity'
  3. 'jump_velocity'
  4. 'movement_velocity'
  5. 'replaceable'
  6. 'instrument'
  7. 'path_find_through'

Networking

Add networking supports, the server can synchronize registry to client now, but only items, blocks and entities can be synchronized.

Others

Performance optimizations.

Script

Fix bug of null pointer exception when requesting event context (cause by mistake method name 'arising', should be 'arise').

Fix bug of all events failures when no contexts registered.

Other

  1. Optimized performances.
  2. Updated dependencies versions.

Planning

Same as before.

Notice

This version has been founds some severe bugs in script running, use newer version!

Data driven

Entity

Add model support, see the sample.

For bedrock schema is currently only parsable, not completed in loading.

Script

Add events:

  1. 'PLACE_BLOCK'
  2. 'PLACED_BLOCK'
  3. 'USE_BLOCK'
  4. 'USED_BLOCK'

Dynamic args can get any value from transforming others values now.

For example, even if the event context input has only present 'ItemPlacementContext', if you want get 'ServerWorld':

request(
    PLACE_BLOCK,
    SERVER_WORLD
).arising { _, world ->
    // Actions here.
    true
}

you can also get other any value where the transform is supported, even the value are not directly push to context.

Other

  1. Optimized performances.

Planning

More entity components and Molang, script APIs, first is conium schame entity components and script APIs.

Data driven

Block

Add supported to these components:

  1. 'minecraft:collision_box'

For bedrock schema and corresponding conium schema templates:

  1. 'collision_box'

Entity

Add basic entity supports, can create an entity and set the collision box (dimension) and pushable:

  1. 'minecraft:collision_box'
  2. 'minecraft:pushable'

For bedrock schema and corresponding conium schema templates:

  1. 'dimension'
  2. 'pushable'

The entity supported 'component_groups' but not be switchable now.

Other

  1. Optimized performances.

Planning

More entity components and Molang, script APIs, first is conium schame entity components and script APIs, delaying the bedrock schama entity components.

Data driven

Block

Add supported to these components:

  1. 'minecraft:destructible_by_explosion'
  2. 'minecraft:destructible_by_mining'
  3. 'minecraft:light_emission'
  4. 'minecraft:map_color' (Not completed)

For bedrock schema and corresponding conium schema templates:

  1. 'explosion_resistance'
  2. 'mining_time'
  3. 'luminance'
  4. 'map_color' (Not completed)

Other

  1. Optimized performances.
  2. Fix bug of shapeless recipe unable to load in '1.0.0-alpha2'

Planning

Entity components and Molang, first is entity components.

Data driven

Item

Add supported to these components:

  1. 'minecraft:fuel'
  2. 'minecraft:glint'
  3. 'minecraft:wearable'

For bedrock schema and corresponding conium schema templates:

  1. 'fuel'
  2. 'glint'
  3. 'armor'

Recipe

Add supported to 'minecraft:recipe_furnace'

Basic datapack and scripts supports by Conium framework.

Data driven supported

Item

Current supported item components:

  1. 'minecraft:damage'
  2. 'minecraft:durability'
  3. 'minecraft:can_destroy_in_creative'
  4. 'minecraft:max_stack_size'
  5. 'minecraft:food'
  6. 'minecraft:rarity'
  7. 'minecraft:use_animation'

For bedrock schema and corresponding conium schema templates:

  1. 'minecraft:damage', 'minecraft:durability' is in 'tool', named as 'attack_damage', 'durability'
  2. 'can_destroy_in_creative'
  3. 'max_count'
  4. 'food'
  5. 'rarity'
  6. 'use_action'

The 'using_converts_to' in bedrock food component is moved to 'convert_to' in 'consumable'.

a full sample

{
  "minecraft:item": {
    "description": {
      "identifier": "awa:bedrock"
    },
    "components": {
      "minecraft:damage": 100,
      "minecraft:durability": {
        "max_durability": 50
      },
      "minecraft:can_destroy_in_creative": {
        "value": true
      },
      "minecraft:max_stack_size": {
        "value": 64
      },
      "minecraft:food": {
        "can_always_eat": false,
        "nutrition": 10,
        "saturation_modifier": 1.0,
        "using_converts_to": "bowl"
      },
      "minecraft:rarity": "uncommon",
      "minecraft:use_animation": {
        "value": "eat"
      }
    }
  }
}

Recipe

Current supported recipe:

  1. 'minecraft:recipe_shaped'
  2. 'minecraft:recipe_shapeless'

recipes are current not supported 'unlock' yet now.

a full sample:

{
  "minecraft:recipe_shaped": {
    "description": {
      "identifier": "awa:test_recipe"
    },
    "group": "wood",
    "pattern": [
      "###",
      " # "
    ],
    "key": {
      "#": {
        "item": "minecraft:bedrock"
      }
    },
    "result": {
      "item": "minecraft:grass_block"
    }
  }
}

Others

See github home README.


Project members

cao-awa

Member

Details

Licensed GPL-3.0-only
Published 3 months ago
Updated a month ago