Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter channels...

Changes

  • Sync / Save Scripts asynchronously on closing Player / Forge / All Npc Tabs
  • Scripted Block now renders more like a block with shadows [TileEntities do not cast sky shadows]
  • Scripted Block hover selection only shows if Block is Visible and not when not passible
  • Send Swing Event only to Serverside
  • Ping Client to Reload NPC on Url Changes
  • Scroll Bars reset when typing into Search Bars
  • Added Acceptable and NotAcceptable Availability options for Cooldown Detection
  • Added scriptCommand hook
  • Some colored blocks now render in banners correctly
  • Send PlayerData in Chunks to prevent SYNC_END overload
  • Added createNew() IItemStack
  • broadcast() for IWorld
  • has() clone in ServerCloneControllers

Fixes

  • Better MorePlayerModel+ Handling for Overlays
  • Fix Tint Hurt Damages
  • Fix HasCode() not checking for Loaded Scripts
  • Fix Item Quest on Pickup calculating Quest Reward too quickly
  • Fix setLootItem(null)
  • Casting Fixes for FakePlayer
  • Scripted Block Text Compounds not saving
  • Better Null Crate handling
  • Gui Trade Setup Cutoff
  • Fix setLore clearing item titles and other display objects
  • Banner Items Rendering Above
  • :skullclown: removed another print
  • Fix removeItem() considering ignoreNBT and ignoreDamage properly now
  • Fix set ServerCloneController
  • Fix Sound Selector not visually updating right away after choosing
  • Permission Handler error for isOp on Client Side

Changes

  • Was in 1.9 -- Added Quest Manual
  • /kam quest objective command for completing objectives for parties and players on quests
  • Added an isOp Permission check for all permissions
  • Add setIsNormalItem() and isNormalItem() to Scripted Items to make items held / render like default MC Items

Fixes

  • Switching Skin Overlay URLs / Textures maintains Glow / Solid
  • Fix Scripted Block Null on Save
  • Fix Scripted Block Events event.block null
  • Fix GUI Texture Selector cutting off texture paths
  • removed print statement
  • Fixed Scripted Item ghost items when being dropped
  • Fixed DBC Custom Item Models causing Player Animation rendering crash
  • Adding more dialog images with different indexes don't crash
  • Fix Player Animations not rendering when switching dimensions

1.9

MASSIVE RELEASE TONS OF CHANGES.

NEW

  • Entire Party System!! SEE GITHUB WIKI
  • TEXTURE REVAMP for ALL ITEMS to more Modern Look
  • Client Side Animation Cache
  • Animations now also have an ID
  • /kam animation to play animations on a player via a command
  • Brand new configs in mixins.cfg to disable and enable animation functionality.
  • First Person Animation rendering
  • Timeline Viewer for all Animations Frames [with Color Picker for categorizing]
  • Dialog / Quest / Sound / Texture Selection Revamped with new Dynamic Popup Selection
  • Dialog Test Button for directly testing dialogs from within the GUI
  • Script Syntax Highlighting
  • Quest Log Categories are now SCROLLABLE :closed_book:
  • Factions GUI now displays 2 columns and is fully hideable in the config/CustomNpcPlus/client.cfg
  • Settings Tab
  • Clear Quest Tracking
  • Clear Skin Cache
  • Modify Quest Tracking [Position, Offset, and Scale]
  • For Dialogs with Noise and Gradual Speed - Edit Values
  • Hide Chat Bubbles / Alert Banners / Chat Info Message
  • Party Tab (read party changes)
  • Hoverable Text in all GUI Lists (Now you can see values fully)
  • Code Highlighting in Scripting Menu
  • /kam command [ScriptedCommandName] to run Scripted Commands via a normal comamand
  • New APIs for added content: IParty, IHitBoxData, ITintData, IMark,
  • IRoleFollower
  • Combat Policy API
  • SET/GET Melee Range, Swing Warmup, Knockback, Aggro Range
  • ILine for Attack, Killed and World Lines
  • Better Hotkey Handling Ctrl + X, C, V, Z, Y... etc
  • Mouse Drag selection in Script GUI.
  • Banned Scripting Classes editable in the main.cfg
  • IVillager for modifying Villager Trading
  • IScreenSize for sending Client Screen Size to Server
  • URL Support on **Capes **and Overlays
  • Spawner Job 2 new AI Variations (Spawns on Summoner Death, Kills Spawns when Summoner Dies)
  • Blocks can now be used in Banners / Hanging Banners / Signs
  • /kam is the same as /kamkeel
  • /kam questcat command
  • /kam dialogcat command
  • /kam overlay command
  • /kam config market allows for Market conversion from JSON to DAT filetype similar to /kam config playerdata, The Market Dat feature must also be enabled within the main.cfg
  • 3 New Shield Types: Frost, Mithril, Demonic Full Variations
  • Added Pounce as a Leap option for NPCs. So now you have Jump and Pounce (Pounce is way further)
  • Friendly Fire and Party Configs for enabling / disabling functionality
  • Better naming for CNPC+ related mobs in Entity Selector
  • Enhanced Build Gradle
  • 2 New Tail Types Monkey (Remade to look like DBC's Tail) and Fox Tail
  • Marks from 1.12
  • Tint Modification Settings
  • Hitbox Modification Settings
  • New Permissions (Printed to Console on Start)
  • Multi-Commands broken up by @x
  • Combat Policy System -> See Discord for Details

FIXES

  • Clicking through Animation Deletion Bug
  • Animations and Armors Desyncing
  • Animations slowing down and speeding up
  • Animations now playing in different dimensions
  • Mouse Scroll working in all scrollable text areas
  • Quest Dialog Selector popping off of screen
  • Trader GUI Setup cutoff
  • Autocomplete Quest Tracking no longer displays an NPC name
  • Top Alignment Dialog Fix
  • Dialog Image Positioning Fix
  • Shift Clicking in Carpentry Bench now updates client inventory
  • getWorld for End and Nether Fix
  • Script Book not hooking Book and Quill
  • getIRoleType returning wrong values
  • npc.updateEntity() to fix dimension ID error for updateClient [fixes existing NPCs]
  • getStoredDataKeys Crash
  • Scripted Particles spawned on summoners player not at proper Y Value
  • Resizing Scripting GUI clears Script
  • Scripted Items being dropped and bobbing in items frames
  • Melee Swing and RangedLaunch Event not being called
  • Custom GUI Item Slots not registering
  • getLeftItem Typo Fix. Both misspelled and correctly spelled are available
  • Inventory Tab Offset Issue
  • Fix Remote Freeze Button not showing the correct option
  • Removed Nashorn Size of Object Dependancy for Java 17 Support
  • Buttons highlighting even when a Sub GUI is pulled up
  • Mouse Overlap Double Clicking buttons
  • World Lines spamming, now has cooldowns
  • Item Giver Job having shared cooldowns (if still broken remake item givers from scratch)
  • HD Textures not loading on NPCs
  • Dispenser Soulstone Crash
  • Kill Projectiles after 1 minute of lifetime
  • Quest Location Crash Fix
  • Scroll Tag Crash
  • 3D Layer Duplicate for Chestplate
  • Spawner Job NPC Bouncing
  • Spawner Job "X" Button
  • DBC Add Bonus Crash
  • Singleplayer Cache not clearing
  • Imgur Redirect Links

CustomNPC+ 1.8.6

1.8: Changes 1.8.1: Changes 1.8.2: Changes 1.8.3: Changes 1.8.4: Changes 1.8.5: Changes

Just a quick bug fix and command overhaul with some new quest and dialog commands that will be extremely useful! Client Cache is now fully tested and in place!

THE QUEST ROLLBACK BUG IS NOW FULLY FIXED with the new PLAYER DATA CACHE!

Changes

  • Added /kam as a command alias for /kamkeel
  • Added /kamkeel questCat Command
  • Added prereq, info, and id to quest command
  • Added /kamkeel dialogCat Command
  • Added availability, info, and id` to dialog command
  • NPC Texture Caching (Less URL Requests)
  • Particle Texture Caching (Fixes Particle Flickering)
  • Added Cache Time to client config

Fixes

  • Fix PlayerData not being removed from Cache
  • Tracked Quest not clearing between worlds/servers
  • DBC Render Error
  • Added noppes command warning (Unsupported)
  • CustomOverlayLabel and Line weird layering bug
  • CNPC+ Logs only PRINT to CustomNPCs Logs (Not Console)
  • Quest/PlayerData Rollback Bug

CustomNPC+ 1.8.5

1.8: Changes 1.8.1: Changes 1.8.2: Changes 1.8.3: Changes 1.8.4: Changes

Changes

  • PlayerData DAT format (Huge Performance Boost for PlayerData loading/saving)
  • Client Image Cache - Added a Client Image cache for Particles, NPC Url Textures, URL Items, etc. There is now a config associated with this in CustomNpcPlus/client.cfg
  • Moved PlayerDataMap.dat location to inside customnpcs folder rather than playerdata folder
  • PlayerData Converter Commands /kamkeel config playerdata

Fixes

  • Set Engine - Memory Leak/Timing Out
  • Bad PlayerData JSON loading issue with CPU hogging
  • Player Animations DBC render issue
  • Script Saving Issue
  • Fix NullPointer Natural Spawns Crash

PLAYERDATA DAT FORMAT

We are introducing a new playerdata format that can extremely benefit larger servers with an active player base. There is no danger in using this format. You can see playerdata loading/saving improvements of upwards of 100x.

HOW TO CONVERT PLAYERDATA

I suggest you whitelist your server and only have one player online when converting playerdata. You must have file access. Converting will NOT delete your existing data

  1. Utilize /kamkeel config playerdata dat/json convert - Wait for complete message
  • dat will clone all JSON playerdata and convert them into dat and put them into a new folder.
  • json will clone all DAT playerdata and convert them into json and put them into a new folder.
  1. Stop your server/close your world
  2. Go into customnpcs folder for your world and remove/rename your playerdata folder. You may keep it somewhere else if you'd like.
  3. Rename playerdata_new folder to playerdata
  4. Go into SERVER config - CustomNpcPlus/main.cfg and enable B:"Dat Format for PlayerData"=true. FALSE if you want to go back to using JSON

CustomNPC+ 1.8.4

1.8: Changes 1.8.1: Changes 1.8.2: Changes 1.8.3: Changes

Changes

  • Added functionality to Search in Cloner by typing in the TAG_NAME - Included in Search
  • Improved Dialog Loading Performance
  • Added Search to BankData Menu
  • Made NPC Quick Tags CLOSE on save.
  • ItemToss Event is Cancellable
  • Improved Script Performance

Fixes

  • Fixed Quest Progress not saving on completion (ATTEMPTED)
  • Fixed Player Animations not moving body parts
  • Removed Duplicate Quest Complete message on Auto Completed Quests
  • QuestData NullPointerCrash on QuestKill
  • Removed Crate FIX to remove Crash
  • ItemSlot CustomGUI Crash
  • ItemSlots not using correct Slot ID
  • Better accuracy for getLookingAtBlock()
  • Fixed an issue where scripts would still run the old version of themselves after being edited.

-- Removes the majority of multithreaded packet sending due to synchronization issues.

CustomNPC+ 1.8.2

1.8: Changes 1.8.1: Changes

Changes

  • Add support for BUKKIT Permission Handling in Bukkit Plugins for KAMKEEL Commands
  • Fully Multithreaded Packet Sending for better server performance and efficiency
  • Added Regenerate PlayerMap Button

Fixes

  • Fixed UUIDs not saving on NPCs when spawning a new one via SoulStone/Clone
  • Fixed Recipe Search crash when recipe output is blank
  • Fixed Quest Cooldowns reading incorrect time.
  • Fixed Quests not displaying Completion
  • Null Check to potentially fix fatal error on Crate
  • Fixed Player Animations rendering corruption while holding a 3D Item
  • Fixed Quest Tracking disabling or not updating properly
  • Multithreaded Quest Data MAY fix Quest's not saving on bigger servers

CustomNPC+ 1.8.1

1.8: Changes

Changes

  • Renovated /kamkeel commands with better messages/feedback
  • Improved Tab Completion on /kamkeel commands
  • Added PlayerData Map file for quicker PlayerData GUI Loading/Synchronization
  • Added Mixin Config

Fixes

  • Fixed Natural Spawning not working
  • Fixed Quests Data not saving correctly into PlayerData
  • Fixed Mixin Crash (Server-Side)
  • Fixed Client Config not correctly saving [Ported Mixin to Mixin Config]

CustomNPC+ 1.8

CNPC+ Changes

Animations

Animations can now be utilized through scripts! They can either be made using scripts or made in the fancy new Animation Maker GUI! You can access this via the Global Menu! See API or JavaDoc for how to script Animations! Animations will also be saved as JSONs so you can EXPORT them and SHARE!

2023-05-09_14 29 44

Tags

There are new tags available to be added to NPCs. They can be used to help organize, filter, and sort through NPCs in your Cloner. Tags can be directly applied via the Cloner or they can be applied within the Advanced Tags page within an NPC. Tags can be created via the Global Menu and the colors/hidden properties can be customized there!

image

Rotation Menu

In order to make the new Animation System function as intended. The PUPPET JOB has been completely removed and converted into a ROTATION Menu. You can use this menu to rotate ALL NPCs regardless of their job. Upon updating, your Puppet Jobs should AUTOMATICALLY convert to the new Rotation Menu. Do note, PUPPET scripts will be the only thing to break :(

image

Event Scripts

Similarly to the 1.12 System you can now add multiple event-oriented scripts directly to an NPC. This will not clear any of your current scripts. It is completely optional to use.

image

Quality of Life

  • New /kamkeel command (With Better HELP MENU) [/noppes still available]
  • Recipe Menu Search Bar
  • Faster/Efficient Global PlayerData viewer
  • Overhauled Config (Saved in CustomNPC+ Folder)
  • Natural Spawning Dimension CONTROL (Should help with issues within LOTR)
  • Client-Side disable QUEST POP UPS

API

  • Scripted Item URLs
  • Limbwear API Functions
  • IModelData additions
  • IProjectile API
  • IDBCPlayer Improvements
  • ISound changes

Fixes

  • Changes to Dialog Quest Logic
  • Fixes to Quest Saving Logic

CustomNPC+ 1.7

The next version of CNPC+ is finally out! It features a bunch of fixes, improvements and quality-of-life changes!

CNPC+ Changes

Flying Improvements

Finally! I am happy to announce that FLYING has BEEN EXTREMELY improved! The AI is not only intelligent but resource efficient! So do not be afraid to SPAM flying NPCs! As always, if you find bugs please report them!

Saving PlayerData (please backup, just in case)

Improvements have been MADE to Saving (and will not result in the crazy compression fiasco we had). It has reduced the amount of PlayerData calls and pushed them to a separate Thread to reduce SERVER LAG and improve PERFORMANCE for Large PlayerData files! Thanks to @EverNife

CNPC+ Logging

I have decided to implement a clean logging system for servers to use! There are 2 Formats for Logging! (must be enabled in config)

ALL LOGS are printed to the CustomNPCs Log files. And if on a SERVER, WILL ONLY print to SERVER CUSTOMNPCs LOG FILEs

Examples ----

  • Player Logging
[21:51:50][CNPC][SCRIPTER] Kam OPEN NPC Asher (-46, 39, -1103) [World]
[21:51:50][CNPC][SCRIPTER] Kam SAVED NPC Asher (-46, 39, -1103) [World]
[21:59:20][CNPC][WAND] Kam OPEN NPC Asher (-46.5, 39.0, -1103.5) [World]
[21:59:21][CNPC][WAND] Kam CLOSE NPC Asher (-46, 39, -1103) [World]
  • Script Logging
[TICK] NPC Bob (World) (-8301, 90, -7848)
[INTERACT] NPC Joe (World) (-8301, 90, -5423) | Objects: [EntityPlayer, Kam]
[DAMAGED] NPC Bill (DIM-1) (-1304, 90, 3021) | Objects: [EntityPlayer, Kam]

Fixes

Fixed ForgeGradle not downloading in build.gradle Fixed Height off the Ground for Flying Fixed Unused Wing Textures not in selector Fix ScriptingEnabled not actually disabling scripts Fixed Null Tile Entities Crash Various Crashes

API

There is NOW an official CNPC+ API This API can be hooked onto by other mods and plugins that you all wish to develop! We will continue to update this API and add even more diverse functionality to it than the original!

https://github.com/KAMKEEL/CustomNPC-Plus-API

API Fixes

All functions that take double values for positions now have functions that take IPos objects as well. IBlock, IPos, IEntity, and IWorld now have readalbe toString functions. NpcAPI: Added getAllInBox(IPos,IPos) function, returns all IPos objects inside the box created by the two positions. Added getPlayer() function Added getChunkLoadingNPCs function Added getCurrentPlayerCount, getMaxPlayers, kickAllPlayers, isHardcore, getFile(path), and getServerOwner functions added IPos: Added crossProduct(IPos), divide(scalar), and to/FromLong functions. IBlock: Added setPosition functions Spawner, Transport, Healer, Guard, Bard jobs and transporter role received more functions. IAnimal, IEntityLiving, and IEntityLivingBase received more functions from their MC counterparts.

1.6.3

*Backup before use Report Bug

⚙️ More Fixes

  • Holding Item Fix
  • Solid Overlays Fix
  • Soulstone Placement Fix

V 1.6.2

Fixes

  • Fake Player Error #60
  • Add Mixins for Overlay Support [Optifine...., etc]
  • Quest Errors - Tracking, Crashing
  • Microblocks Duplication Glitch
  • Flying Code Processing Improvements (Less Lag)
  • Dialog Cut Off Fix
  • 3D Item Rendering Fix
  • SkinOverlay Transparent (Default)
  • Entity Soulstone Positioning
  • Cloak Damage White Flickering
  • Waypoint Error

V 1.6.1

  • Fix GlowTexture from OLD NPCs not loading

V 1.6

CNPC

☑️ 64x64 SELECTED Textures Compatible on ALL Models (Steve, Alex, Steve64)

There are no more /64-Textures/ for CNPC Entity Textures. All 64x32 have been removed and replaced with 64x64 versions. All NPCs that have "/64-Textures" selected should automatically change. From now on 64x64 Textures WILL work on all Human Model types. 64x32 will work on Steve32 Only. (This only affects the texture selector, not the URL or Username selection)

☑️ Solid NPC Overlay

Button added to NPC Display section. Options: Glow or Solid. Glow is enabled by default for overlays, but the new Solid option will remove the glow and transparency for overlays. (Examples: Scars, Bruises, Blood, etc)

☑️ Quest Tracking

To track or untrack a quest, open the quest tracker and click "Track". Tracked quest objectives will update as objectives are completed on an overlay GUI to the right of the screen.

☑️ Additional Visual Dialog Options

All options are visible from the "visual options" button in the dialog creation menu. These include custom images with a configurable limit, offset and scaling options, gradual & instant rendering options, and much more. Dialog pauses have been added! Adding a number in between brackets ( {10} for example) will delay dialog rendering by that many ticks.

☑️ Natural Spawning Options

Up to 5 NPCs can be added, and different spawning behaviors and heights can be configured now.

☑️ NPC Breathing Types

NPCs can drown in water [Default], in air but not water (like squids), or not drown at all.

☑️ Cloak Invisibility

Cloaks become invisible if the NPC is invisible.

☑️ Potion Amplification

DirectionalButtons to Melee Potion Effects -- (Amplification up to 10) [Will be added to ranged in release of 1.6)

☑️ Entity Model Overlays

Entity Models can now use overlays with any texture selected

⚙️ More Fixes

Flight pathing has been improved. Speed calculations have also been improved, most importantly vertical speed now functioning like it should: increasing the rate at which an NPC climbs/descends heights while flying, and not resulting in wacky speeds now. Try it! Removed MorePlayerModel dependency for parts (again, sorry.) Added config for only operators to view/edit scripts, and for only a list of players with given UUIDs to view or edit scripts. Added a config to allow for scripts to be expanded past the 65k character limit. Every additional increase of the config adds another 65k characters to scripts. Fixed quest tracking not being able to be removed. Fixed concurrent modification crash with PlayerQuestData Knockback Enchantment / Critical not taken into account for Knockback Resistance Fixed NPC Follower Role

API

☑️ Scripted Items

Found in the creative menu, you can now script your very own custom items! Shift-Right-Click in creative mode with the item in your hand to access its scripts (event hook list on the left side of the GUI). Scripted Items can be held by any entity, have custom textures with URL support, rotate in every axis, be scaled to be smaller/larger, be offset in the entity's hand, have a custom max stack size, have a custom color, have a custom item use action (nothing, block, bow, eat, drink), can have their enchantibility changed, among some other functions. Try it all out, go nuts!

☑️ NPC & Player Skin Overlays

Players can now also use overlay textures, and both NPCs and players support several overlays, denoted by their ID! These overlays are compatible with JinRyuu's Dragon Block C and other custom player renderers. Each individual overlay can have custom textures with URL support, glow, blend with textures below it or not, have custom alpha values, have custom sizes, be offset from the player or NPC, scale its texture up/down, and apply a texutre "speed", making the texture move accross the entity.

☑️ Massive Scripted Particle Update

You can now control several attributes of scripted particles, such as alpha values, size, directory with URL support, texture scale, position, color interpolation, rotation in every axis, whether the particle faces the player, particle animation, and more. Additionally, particles can now be set to spawn in a position in the world, not just on an entity (Now called IParticle instead of ScriptEntityParticle for this reason). Packets to the client are optimized to send only the necessary data to create the desired particle.

☑️ Global Data Handlers

Instead of using an IWorld object for modifying global faction/dialog data, you can now access and modify that data through handler objects gotten through the NpcAPI class:

var factionHandler = API.getFactions(); //Returns global faction data as an IFactionHandler object.
var recipeHandler = API.getRecipes(); //Returns global recipe data as an IRecipeHandler object.
var questHandler = API.getQuests(); //Returns global quest data as an IQuestHandler object.
var dialogHandler = API.getDialogs(); //Returns global dialog data as an IDialogHandler object.
var cloneHandler = API.getClones(); //Returns global clone data as an ICloneHandler object.
var spawnsHandler = API.getNaturalSpawns(); //Returns global natural spawn data as an INaturalSpawnsHandler object.
var transportHandler = API.getLocations(); //Returns global transport data as an ITransportHandler object.

You can then modify and create data objects for these handlers through their functions (be careful when updating large amounts of data), which are all visible on...

☑️ Differing IItemStack Types

Item stacks are now converted into IItemStacks exclusively through the NpcAPI, which means they can be easily categorized into different types! For now, the only types are:

- scripted
- book
- block
- armor
- other (regular IItemStack like in previous versions if it's not any of the other types)

The first four types have their own set of functions available to only that type of IItemStack, and can all use the regular IItemStack functions.

⚙️ Additional API Additions

  • ISound: New interface for manipulating sounds, all sounds can be tied to an ID to stop/pause/continue them. Various sound attributes like pitch, volume, and position can be modified.
  • NpcAPI: Added new functions for use with the ISound interface: createSound(), playSound(), pauseSound(), continueSound(), stopSound(), pauseSounds(), continueSounds(), stopSounds(). These functions play to players in all worlds.
  • NpcAPI: Added stopServer() function with a configurable shutdown message.
  • IWorld: Added above ISound functions to manipulate sounds for a world in particular.
  • IPlayer: Added new ISound functions that only affect a player in particular.
  • IWorld & ICloneHandler: Added new spawnClone() function that checks for entity spawn protection.
  • IWorld: Added getEntitiesNear() function with position and range parameters.
  • IWorld: Added rayCastPos() function for when rayCastBlock() returns null.
  • IWorld: Added rayCastEntities() function
  • IEntityLivingBase: Added getLookPos() and getLookingAtEntities()
  • IPlayer: Added isScriptDev() function to determine whether a player is allowed to view and edit scripts.
  • IPlayer: Added functions that use IDialog & IQuest parameters to change quest & dialog data instead of IDs.
  • IPlayer: Added kick() function with a configurable message/kick reason.
  • Added PlayerEvent.AttackEvent & PlayerEvent.AttackedEvent to completely cancel attack events, preventing knockbacks/hits from occuring to or by the player.
  • PlayerEvent.MouseEvent: Added isCtrlPressed, isAltPressed, isMetaPressed, isShiftPressed, and keysDown fields.
  • IParticle: Added general spawn() function, replaced spawnOnEntity and spawnInWorld. Former functions deprecated.

⚙️ And TONS of more functions added to pre-existing API classes: View all of them on the Javadoc!

⚙️ API Fixes

  • Fixed some timer functions causing crashes instead of exceptions.
  • Fixed scripting text area modification being VERY slow on large scripts (>200k characters)
  • Fixed mouse wheel changes not triggering a mouse event.
  • Fixed image u,v values for custom GUI and overlay textured rectangles.
  • Fixed hover text for custom GUI buttons
  • Fixed images with uneven widths/heights not rendering correctly for scripted particles.

CustomNPC+ Dark Mode

Release V 1.0

CustomNPC+ Java Doc

CNPC+ API Docs

1.5.4

BACKUP BEFORE USE (Including CNPC+ Player Data)

CNPC CHANGES -- Updated VersionCompatibility for Updating Data and Fixing Load Data -- Reverted to OLD PlayerData System to prevent errors and deletions occurring -- Remodeled Capes & Added Dozens of New Capes!

Reorganized Cape Directory to better fit future updates

FIXES & OPTIMIZATIONS -- Fixed Useless Dependency Files -- Fixed NPC Dialog Scripts -- Fixed PlayerData Deletion

ZSTD FILE Compression has been REMOVED (Unstable)

1.6 Beta

*Backup before use

THIS IS A BETA so EXPECT SOME BUGS Report Bug

CustomNPC+ Dark Mode

Release V 1.0

CustomNPC+ Java Doc

CNPC+ API Docs

CNPC

☑️ 64x64 SELECTED Textures Compatible on ALL Models (Steve, Alex, Steve64)

There are no more /64-Textures/ for CNPC Entity Textures. All 64x32 have been removed and replaced with 64x64 versions. All NPCs that have "/64-Textures" selected should automatically change. From now on 64x64 Textures WILL work on all Human Model types. 64x32 will work on Steve32 Only. (This only effects the texture selector, not the URL or Username selection)

☑️ Solid NPC Overlay

Button added to NPC Display section. Options: Glow or Solid. Glow is enabled by default for overlays, but the new Solid option will remove the glow and transparency for overlays. (Examples: Scars, Bruises, Blood, etc)

☑️ Quest Tracking

To track or untrack a quest, open the quest tracker and click "Track". Tracked quest objectives will update as objectives are completed on an overlay GUI to the right of the screen.

☑️ Additional Visual Dialog Options

All options are visible from the "visual options" button in the dialog creation menu. These include custom images with a configurable limit, offset and scaling options, gradual & instant rendering options, and much more. Dialog pauses have been added! Adding a number in between brackets ( {10} for example) will delay dialog rendering by that many ticks.

☑️ Natural Spawning Options

Up to 5 NPCs can be added, and different spawning behaviors and heights can be configured now.

☑️ NPC Breathing Types

NPCs can drown in water [Default], in air but not water (like squids), or not drown at all.

☑️ Cloak Invisibility

Cloaks become invisible if the NPC is invisible.

☑️ Potion Amplification

DirectionalButtons to Melee Potion Effects -- (Amplification up to 10) [Will be added to ranged in release of 1.6)

⚙️ More Fixes

Flight pathing has been improved. Speed calculations have also been improved, most importantly vertical speed now functioning like it should: increasing the rate at which an NPC climbs/descends heights while flying, and not resulting in wacky speeds now. Try it! Removed MorePlayerModel dependency for parts (again, sorry.)

API

☑️ Scripted Items

Found in the creative menu, you can now script your very own custom items! Shift-Right-Click in creative mode with the item in your hand to access its scripts (event hook list on the left side of the GUI). Scripted Items can be held by any entity, have custom textures with URL support, rotate in every axis, be scaled to be smaller/larger, be offset in the entity's hand, have a custom max stack size, have a custom color, have a custom item use action (nothing, block, bow, eat, drink), can have their enchantibility changed, among some other functions. Try it all out, go nuts!

☑️ NPC & Player Skin Overlays

Players can now also use overlay textures, and both NPCs and players support several overlays, denoted by their ID! These overlays are compatible with JinRyuu's Dragon Block C and other custom player renderers. Each individual overlay can have custom textures with URL support, glow, blend with textures below it or not, have custom alpha values, have custom sizes, be offset from the player or NPC, scale its texture up/down, and apply a texutre "speed", making the texture move accross the entity.

☑️ Massive Scripted Particle Update

You can now control several attributes of scripted particles, such as alpha values, size, directory with URL support, texture scale, position, color interpolation, rotation in every axis, whether the particle faces the player, particle animation, and more. Additionally, particles can now be set to spawn in a position in the world, not just on an entity (Now called IParticle instead of ScriptEntityParticle for this reason). Packets to the client are optimized to send only the necessary data to create the desired particle.

☑️ Global Data Handlers

Instead of using an IWorld object for modifying global faction/dialog data, you can now access and modify that data through handler objects gotten through the NpcAPI class:

var factionHandler = API.getFactions(); //Returns global faction data as an IFactionHandler object.
var recipeHandler = API.getRecipes(); //Returns global recipe data as an IRecipeHandler object.
var questHandler = API.getQuests(); //Returns global quest data as an IQuestHandler object.
var dialogHandler = API.getDialogs(); //Returns global dialog data as an IDialogHandler object.
var cloneHandler = API.getClones(); //Returns global clone data as an ICloneHandler object.
var spawnsHandler = API.getNaturalSpawns(); //Returns global natural spawn data as an INaturalSpawnsHandler object.
var transportHandler = API.getLocations(); //Returns global transport data as an ITransportHandler object.

You can then modify and create data objects for these handlers through their functions (be careful when updating large amounts of data), which are all visible on...

☑️ Differing IItemStack Types

Item stacks are now converted into IItemStacks exclusively through the NpcAPI, which means they can be easily categorized into different types! For now, the only types are:

- scripted
- book
- block
- armor
- other (regular IItemStack like in previous versions if it's not any of the other types)

The first four types have their own set of functions available to only that type of IItemStack, and can all use the regular IItemStack functions.

⚙️ And TONS of more functions added to pre-existing API classes: View all of them on the Javadoc!


Project members

KAMKEEL

Owner

PopsicleNate

Artist

c0508383

Developer

Goodbird

Developer


Technical information

License
Client side
required
Server side
required
Project ID