Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Sculk

Sculk

A programming language for Minecraft datapacks.

554
13
Game Mechanics
Management
Technology

Compatibility

Minecraft: Java Edition

1.20.4

Platforms

Fabric

Supported environments

Client and server

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source Visit wiki

Creators

RevolvingMadness
RevolvingMadness Member

Details

Licensed Apache-2.0
Published last year
Updated last year
DescriptionGalleryChangelogVersions

Sculk 0.0.5 (First Beta)

by RevolvingMadness on Mar 8, 2024
Download

Custom Block & Item Support!

Added

  • Item extends ItemStack
  • PlayerEntity.getStackInMainHand
  • PlayerEntity.getStackInOffHand
  • Method extends Callable
  • Function extends Callable
  • Inventory class
  • List toString
  • ItemStack.init(item: Item, count: Integer) -> Null
  • \uXXXX to strings
  • String.fromUnicode(unicode: Integer) -> String
  • GUI.onClose(player: PlayerEntity, gui: GUI) -> Null
  • PlayerEntity.getEnderChestInventory() -> Inventory
  • PlayerEntity.setEnderChestInventory(inventory: Inventory) -> Null
  • Inventory constructor
  • PlayerEntity.setInventory(inventory: Inventory) -> Null
  • PlayerEntity.getInventory() -> Inventory
  • NBTBoolean
  • NBTCompound
  • NBTElement
  • NBTFloat
  • NBTInteger
  • NBTList
  • NBTNull
  • NBTString
  • Casting
  • start script tag
  • nonnull access modifier
  • Custom item/block support
  • Items.register(item: Item) -> Item
  • ItemSettings
  • Blocks.register(block: Block) -> Block
  • Blocks.registerWithItem(block: Block) -> Block
  • BlockSettings

Sculk 0.0.4

by RevolvingMadness on Feb 15, 2024
Download

This version is probably very buggy because I added type requirements at the very end.

Added

  • randomInteger(min: Integer, max: Integer) -> Integer
  • randomFloat(min: Float, max: Float) -> Float
  • String.length() -> Integer
  • String.uppercase() -> String
  • String.lowercase() -> String
  • Number type/class
  • variables/fields have optional required types
  • functions have required return types
  • function arguments have required types
  • methods have required return types
  • method arguments have required types
  • ItemStack.item

Changed

  • Events is now accessed from a static context
  • Entity.addCommandTag -> Entity.addTag
  • Entity.getCommandTags -> Entity.getTags
  • Entity.removeCommandTag -> Entity.removeTag
  • Entity.dismountVehicle -> Entity.dismount
  • Entity.removeAllPassengers -> Entity.removePassengers
  • ServerPlayerEntity.changeGameMode -> ServerPlayerEntity.setGameMode
  • Integer now extends Float instead of Float extending Integer
  • Events.onPlayerAttackEntity -> Events.onAttackEntity
  • Events.onPlayerBreakBlock -> Events.onBreakBlock
  • Events.onPlayerCraftItem -> Events.onCraftItem
  • Events.onPlayerDropItem -> Events.onDropItem
  • Events.onPlayerJump -> Events.onJump
  • Events.onPlayerPickupItem -> Events.onPickupItem
  • Events.onPlayerRingBell -> Events.onRingBell
  • Events.onPlayerSneak -> Events.whileSneaking
  • Events.onPlayerUseItem -> Events.onRightClickItem
  • Events.onPlayerSendChatMessage -> Events.onSendChatMessage

Fixed

  • Dictionaries don't work in nbt elements
  • Overriding toString does nothing
  • A class with no constructor takes an infinite amount of arguments

Improved

  • Error messages

Removed

  • Resource syntax due to conflict with variable declaration parsing
    New syntax: namespace:path -> "namespace:path"
    Resources are just strings.

Sculk 0.0.3

by RevolvingMadness on Jan 29, 2024
Download

Added

  • abs(number: Integer | Float): Object
  • String is now iterable
  • Data can now be written to an entity
  • String.startsWith(text: String): Boolean
  • String.endsWith(text: String): Boolean
  • break can now be used in switch statement
  • String.split(splitter: String): List[String]
  • Integer.parseInteger(integer: String): Integer
  • Float.parseFloat(float: String): Float
  • ceil(number: Integer | Float): Integer
  • floor(number: Integer | Float): Integer
  • BlockHitResult
  • World.breakBlock(pos: BlockPos, drop_items: Boolean): Boolean
  • World.getBlock(pos: BlockPos): Block
  • List.append(object: Object): Null

Changed

  • events.onPlayerBreakBlock(function: Function[Boolean, PlayerEntity, Block]): Null is now events.onPlayerBreakBlock(function: Function[Boolean, PlayerEntity, BlockPos, Block]): Null
  • World.setBlock renamed to World.placeBlock
  • maxArguments renamed to maxArgumentCount

Fixed

  • String concatenation
  • Event registration not clearing on reload

Improved

  • Error messages

Sculk 0.0.2

by RevolvingMadness on Jan 23, 2024
Download

Added

  • Folder support for resources
    • foo:bar now supports foo:foo/foobar
  • as keyword to import statements
  • From statement
  • Switch statement
  • Switch expression
  • Increment/decrement operators x++ / x--
  • Access to builtin classes
  • Constructors for builtin classes
  • Ternary expressions
  • Division by zero error
  • Entity.raycast(distance: Float, target: Block, check_fluids: Boolean): Boolean
  • base64encode(input: String): String
  • base64decode(input: String): String
  • EntityTypes
  • List.contains(object: Object): Boolean

Changed

  • Entity.extinguish(): Null and Entity.extinguishWithSound(): Null have been merged into one function Entity.extinguish(Boolean): Null
  • Fix circular imports
  • Reverted custom load script
  • Float extends Integer

Sculk 0.0.1

by RevolvingMadness on Jan 18, 2024
Download

First alpha version of Sculk!

Known Bugs

  • Crashes on server when any Sculk script errors occur

Modrinth is open source.

main@81b0922

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.